[英]If statement condition is met, but contents not executed?
我有兩個if()
語句,它們的條件都滿足<select>
和<input>
表單字段中的默認值,我已經通過將值分配給變量並寫入變量來進行測試。 ( 0
和Url
)。
但是,似乎兩個if()
語句的內容都不能正確執行。
這是我的JSFiddle的鏈接: http : //jsfiddle.net/cfRAk/2/
對此原因的任何編輯/答案將不勝感激!
更改此行:
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
。 如果字符串為空,則將字符串轉換為布爾值只會導致false
。 "0"
不為空,因此被評估為true。 由於您要使用!geo_select_val
,因此它永遠不會進入。
注意:僅當您確保所有值均為數字時,此修補程序才有效。 如果不是這種情況,請檢查是否等於"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");
}
}
});
當我在此click函數中設置斷點,然后單擊Post Form div時, geo_select_val
返回為"0"
,這意味着if(!geo_select_val)
將失敗,因為geo_select_val
確實具有一個值,因此將永遠不會執行第一個if條件。
也許您希望第一個if條件為:
if (geo_select_val != "0") {
它會告訴您是否選擇了除默認值以外的其他值(假設您將其他選項添加到具有不同值的select標記中)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.