【发布时间】:2014-02-03 05:50:58
【问题描述】:
我有一些默认值为“颜色”的文本输入。当用户单击按钮时,该值将被从颜色选择器中提取的十六进制值替换。当我尝试通过 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()
}
【问题讨论】:
-
除非你显示代码,否则谁能告诉你出了什么问题?
-
禁用控件值未在表单中提交。如果您粘贴一些您正在使用的脚本,我们将不胜感激..
-
您正在绑定事件,而不是设置它的值。
$('button#btn' + (index + 1)).on('click', function() {