我有一些默认值为“color”的文本输入。当用户单击按钮时,该值将替换为从颜色选择器中拉出的十六进制值。当我尝试通过AJAX提交表单时,输入值将重置为“颜色”。为什么会这样?仅供参考,输入已禁用,因此用户无法输入替代文字。
HTML
<table id="lbltbl">
<tr>
<td>
<p class="lbls" id="lbl1"><input class="lab" type="text" name="c1" id="clr1" value="color1" disabled="disabled" /></p>
<p class="lbls" id="lbl2"><input class="lab" type="text" name="c2" id="clr2" value="color2" disabled="disabled" /></p>
<p class="lbls" id="lbl3"><input class="lab" type="text" name="c3" id="clr3" value="color3" disabled="disabled" /></p>
<p class="lbls" id="lbl4"><input class="lab" type="text" name="c4" id="clr4" value="color4" disabled="disabled" /></p>
</td>
<td>
<p class="lbls" id="lbl5"><input class="lab" type="text" name="c5" id="clr5" value="color5" disabled="disabled" /></p>
<p class="lbls" id="lbl6"><input class="lab" type="text" name="c6" id="clr6" value="color6" disabled="disabled" /></p>
<p class="lbls" id="lbl7"><input class="lab" type="text" name="c7" id="clr7" value="color7" disabled="disabled" /></p>
<p class="lbls" id="lbl8"><input class="lab" type="text" name="c8" id="clr8" value="color8" disabled="disabled" /></p>
</td>
</tr>
</table>
jQuery
$('input.lab').each(function(index) {
$('button#btn' + (index + 1)).on('click', function() {
$('input#clr' + (index + 1)).val('#' + $('div.colorpicker_hex').children().val());
});
});
$.ajax ({
type: 'post',
url: 'classes/requests/addRequest.php',
data: {
c1: $('#clr1').val()
}
答案 0 :(得分:0)
很难在不看代码的情况下知道,但我猜你的JS没有正确选择元素来解释初始加载后加载的DOM元素。
您可以发布相关代码吗?
答案 1 :(得分:0)
我不确定您的代码是否仍然不完整,但根据W3标准,禁用控件的值不会以表格形式提交。看看这个W3 Link
如果您希望该用户未明确更改值,则可以将控件标记为只读。