我刚刚注意到,禁用时,选择器中没有选中禁用的输入文本字段。有没有办法说禁用选择输入......
<input type="text" name="MYNAME" id="preXXXX" disabled='disabled' value="my Value" />
$.each($('input[id^="pre"], select[id^="pre"]').serializeArray(), function() {
答案 0 :(得分:2)
已禁用的输入字段is在选择器中被选中,但在表单序列化(serializeArray()
)时包含 ,因为它不是{{ 3}}。 {O-3}}中记录了此行为。
答案 1 :(得分:1)
HTML5 spec指定disabled form fields should not be submitted with the form(3.1子弹#2)。
jQuery最好按照预期结果来遵循规范。
如果希望数据与表单一起传输,但您想阻止用户编辑该值,则应使用readonly="readonly"
而不是disabled="disabled"
。只读字段就是这样,用户可以读取它们,但不能编辑它们。
就选择而言,您只需要使用jQuery工厂方法进行选择:
$('input[id^="pre"], select[id^="pre"]')
您可以使用each
函数迭代每个元素:
$('input[id^="pre"], select[id^="pre"]').each( function( index, element ){
...do stuff...
});
答案 2 :(得分:0)
如果您想提交已禁用的输入字段,可以尝试使用此类
//This gives an array of name/value pair object.
var inputArray = $('input[id^="pre"], select[id^="pre"]').serializeArray();
//Now look only for disabled input fields and push into inputArray and then process that.
$("input:disabled").each(function(){
inputArray.push({ name: this.name, value: this.value });
});
//Now process inputArray which contains all the input fields name/value pair
$.each(inputArray, function() {
});
答案 3 :(得分:0)
试试这个。您可以像这样使用each
:
$('input[id^="pre"], select[id^="pre"]').each(function() { ... });