jquery
  • html
  • jquery-selectors
  • 2014-09-26 159 views 0 likes 
    0

    我有一個具有默認值的輸入。 在某些情況下,默認值就什麼都不是(我的意思是輸入將是空的) 因此,代碼將是這樣的:JQuery按值輸入輸入

    <input type="text" class="srlz" value="" /> 
    

    然後我有應該序列非空輸入一個jQuery功能。 (並且它們的值並不-1選擇)由該代碼:

    $(":input.srlz[value!='']").not(":has(option[value='-1']:selected)").serialize(); 
    

    或:

    $(":input.srlz").not(":has(option[value='-1']:selected)").not("[value='']").serialize(); 
    

    但雖然我用於輸入輸入值的代碼不序列提到輸入,因爲它具有默認值(value="")。 我剛剛測試了下面的輸入,而不是第一行,它的效果很好。

    <input type="text" class="srlz" /> 
    

    我怎樣才能解決這個問題?

    回答

    1

    輸入值屬性與輸入值屬性不同。屬性在DOM中設置,只能包含字符串。屬性是對象的一部分,它們可以存儲其他類型的布爾。

    當你使用:input[value!='']你檢查屬性,但是當你編輯輸入,然後js設置他們的屬性(這就是爲什麼你沒有看到開發工具中的DOM檢查器中的實際值)。

    解決方法是創建檢查value屬性的filter()。

    $(...).filter(function() { 
        return $(this).val() !== ''; 
    })... 
    

    http://jsfiddle.net/mpuc52dk/2/

    相關問題