我有两个if()
语句,其中的条件都符合<select>
和<input>
表单字段中的默认值我通过分配值变量和写入变量。 (0
和Url
)。
但是,似乎if()
语句的内容都没有正确执行。
这是我的JSFiddle的链接: http://jsfiddle.net/cfRAk/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") {
将告诉您是否已选择除默认值之外的其他值(假设您为具有不同值的选择标记添加其他选项)。