我使用jquery序列化表单,但我想用类.has-dynamic-prices排除所有输入。
我正在使用下面的代码,但它似乎并没有起作用。任何帮助将非常感激!谢谢!
var serialized_form = $("#base-menu-form:input:not(.has-dynamic-prices)").serialize()
答案 0 :(得分:1)
考虑 - #base-menu-form
是表单ID
尝试:
var serialized_form = $('#base-menu-form input:not(.has-dynamic-prices)').serialize();
或
var serialized_form = $('#base-menu-form input').not('.has-dynamic-prices').serialize();
答案 1 :(得分:1)
The other answer from weBBer works well
$("form input").not('.has-dynamic-prices').serialize()
或者在序列化之前禁用字段
$("form .has-dynamic-prices").prop("disabled",true); // works
console.log($("form").serialize())
.hidden { display:none }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<form>
<input type="hidden" name="f1" value="1"/>
<input type="text" name="f2" value="2" class="has-dynamic-prices" />
<input class="hidden" name="f3" value="3"/>
<input type="text" disabled name="f4" value="4" /><br />
<textarea name="f5" class="has-dynamic-prices" rows="5" >Also ignore me although I am not an <input></textarea>
</form>
答案 2 :(得分:0)
如果要获取表单的所有元素,可以使用表单的纯Javascript elements属性,然后根据该属性过滤输入。
$($("myForm")[0].elements).not(".has-dynamic-prices").serialize()