JQuery选择按值输入

时间:2014-09-26 21:15:09

标签: jquery html jquery-selectors

我有一个默认值的输入。 在某些情况下,默认值将是什么(我的意思是输入将是空的) 所以代码将是这样的:

<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 个答案:

答案 0 :(得分:1)

输入值属性与输入值属性不同。属性在DOM中设置,只能包含字符串。属性是对象的一部分,它们可以存储其他类型,如bool。

当您使用:input[value!='']时,检查属性,但是当您编辑输入时,js会设置其属性(这就是为什么您在开发人员工具中看不到DOM检查器中的实际值)。 / p>

解决方案是创建用于检查value属性的filter()。

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

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