为什么我的更新输入未通过AJAX提交?

时间:2014-02-03 05:50:59

标签: jquery ajax input

我有一些默认值为“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()
    }

2 个答案:

答案 0 :(得分:0)

很难在不看代码的情况下知道,但我猜你的JS没有正确选择元素来解释初始加载后加载的DOM元素。

您可以发布相关代码吗?

答案 1 :(得分:0)

我不确定您的代码是否仍然不完整,但根据W3标准,禁用控件的值不会以表格形式提交。看看这个W3 Link

如果您希望该用户未明确更改值,则可以将控件标记为只读。