如果满足语句条件,但内容未执行?

时间:2011-10-17 16:44:19

标签: javascript jquery

我有两个if()语句,其中的条件都符合<select><input>表单字段中的默认值我通过分配值变量和写入变量。 (0Url)。

但是,似乎if()语句的内容都没有正确执行。

这是我的JSFiddle的链接: http://jsfiddle.net/cfRAk/2/

对于为什么会发生这种情况的任何编辑/答案都将非常感谢!

2 个答案:

答案 0 :(得分:1)

更改此行:

var geo_select_val = $('select[name=g_country\\[1\\]]').val();  

对此:

var geo_select_val = parseInt($('select[name=g_country\\[1\\]]').val());  

事情geo_select_val实际上是"0"而不是0。如果string为空,则将字符串转换为boolean只会导致false"0"不为空,因此被评估为真。由于你要去!geo_select_val,它永远不会进入。

警告:只有确保所有值都是数字时,此修复才有效。如果不是这种情况,请检查与"0"

的相等性

答案 1 :(得分:0)

以下是您要问的代码:

$('#post-form').click( function() {  
    var geo_select_val = $('select[name=g_country\\[1\\]]').val();          
    if(!geo_select_val) {
        var geo_url_val = $('input[name=g_url\\[1\\]]').val();
        if(geo_url_val != "http://google.com") {
            $('#notification').html("You need to enter a valid url");
        }
    }
});

当我在此点击功能中设置断点,然后点击帖子表格div时,geo_select_val将返回"0",这意味着if(!geo_select_val)将失败,因为geo_select_val确实有一个值,所以第一个if条件永远不会被执行。

也许你想要第一个if条件:

if (geo_select_val != "0") {

将告诉您是否已选择除默认值之外的其他值(假设您为具有不同值的选择标记添加其他选项)。