2014-05-04 60 views
1

我使用$ .trim檢查輸入是否爲空,如果是,則不會發生任何情況。如果它們不是空的,則應提交表單。jQuery:修剪不適用於檢查空輸入

這是變量,其中的條件所在位置:

var save = $("<input type='button' value='Save' />").on('click',function() { 
     if(!$.trim(name)==''||!$.trim(degree)==''||!$.trim(dateFrom)==''||!$.trim(dateTo)=='') { 
      $("#list").append("<li>Name: "+$('#elem1').val()+ 
          "<br>Degree: "+$('#elem2').val()+ 
          "<br>Date From: "+$('#elem3').val()+ 
          "<br>Date To: "+$('#elem4').val()+ 
          "</li>"); 
      cancel.click(); 
     } else {} 
    }); 

請看看上的jsfiddle代碼在這裏:http://jsfiddle.net/vrpWu/

  • 點擊 「添加其他」

請注意,它沒有if條件,爲什麼會發生這種情況?我到處都是,但看起來像我的代碼沒有錯。

+0

你有什麼期望'!$。修剪(名)== '''做什麼? – elclanrs

+0

你在哪裏定義'name','degree','dateFrom'和'dateTo'? –

+0

@elclanrs是的,我正在測試,如果這是失敗的原因,忘記刪除它,感謝提醒 – user3288852

回答

1

首先,你必須得到的值,當你實際點擊保存按鈕,而不是之前,因爲當時的值將永遠是空字符串

var save = $("<input type='submit' value='Save' />").on('click', function() { 
    var name  = $("#elem1").val(); 
    var degree = $("#elem2").val(); 
    var dateFrom = $("#elem3").val(); 
    var dateTo = $("#elem4").val(); 

    if (!($.trim(name) == '' || $.trim(degree) == '' || $.trim(dateFrom) == '' || $.trim(dateTo) == '')) { 
     console.log('test') 
     $("#list").append("<li>Name1: " + $('#elem1').val() + 
      "<br>Name2: " + $('#elem2').val() + 
      "<br>Name3: " + $('#elem3').val() + 
      "<br>Name4: " + $('#elem4').val() + 
      "</li>"); 
     cancel.click(); 
    } else { 
     console.log('no') 
    } 
}); 

,那麼你應該注意的事情稍有不同,當你否定的變量和使用OR

您可以否定整個事情一次

if (! ($.trim(name)==''||$.trim(degree)==''||$.trim(dateFrom)==''||$.trim(dateTo)=='')) { 

或使用,而是

if (!$.trim(name)=='' && !$.trim(degree)=='' && !$.trim(dateFrom)=='' ... etc 

FIDDLE

+0

這樣做了,謝謝! – user3288852