use*_*628 0 html javascript forms jquery
为什么这种情况总是执行ELSE而不是IF分支.这是javascript:
$(document).ready(function(){
if (document.getElementById("analyses").value == 'distance'){
loadScript('/static/distance.js', function()
{
console.log('done loading');
});
}else{
loadScript('/static/geoClusters.js', function()
{
console.log('done loading');
});
}
});
Run Code Online (Sandbox Code Playgroud)
表单有几个具有不同选项值的选择标记,如下所示:
<select name="analysis" id="analyses">
<option value="" disabled="disabled" selected="selected">Select Analysis</option>
<option value="distance">distance</option>
<option value="clustered">clustering</option>
</select>
Run Code Online (Sandbox Code Playgroud)
我看不出if-else语句有什么问题.
谢谢
编辑
感谢所有伟大的建议,我认为代码的结构方式与@trebuchet建议的方式相同:
$("#analyses").bind("change",function(){
.............code.......
});
Run Code Online (Sandbox Code Playgroud)
谢谢大家.
你实际上不能value在HTML select元素上使用它 - 它有属性selectedIndex,但不是selectedValue.但是JQuery确实val()在select元素上实现:
if ($("#analyses").val() == 'distance')
Run Code Online (Sandbox Code Playgroud)
如果您使用直接Javascript进行操作,则必须首先获取所选索引,然后是option元素中的值:
var sel = document.getElementById("analyses");
if (sel.options[sel.selectedIndex].value)
Run Code Online (Sandbox Code Playgroud)
为了回答你的问题,使用原始代码,Javascript将始终执行else分支,因为document.getElementById("analyses").value是undefined,在一个布尔语句中哪个Javascript被强制转换为"false".