0

我无法在隐藏的输入字段中更改值属性。我有一个带有以下 HTML 的表单:

<input type="hidden" name="caitlinisdabomb" id="caitlinisdabomb" value="no" />

当我右键单击>查看源时,值没有改变。发送表单时,也会在标题中发送不正确的值。console.log("im human " + document.getElementById("caitlinisdabomb").value) 应该记录为“im human yes”。是什么赋予了?是因为动态生成的表格吗?所有文件都在这里: alluringassets.com/slick-contact-forms.rar

console.log("I work");
            function markAsHuman() 
            {
                $('#caitlinisdabomb').val('yes');
                //document.getElementById("caitlinisdabomb").value = 1;
                console.log("im human " + document.getElementById("caitlinisdabomb").value);
            }


            $(".slick-form").on("focus", function()  {
                markAsHuman();
            });

            $(".slick-form").on("click", function()  {
                markAsHuman();
                console.log("you clicked");
            });
4

1 回答 1

1

.slick-form元素何时出现?你是用页面加载它还是异步加载它?

即你的例子,不等待DOM准备好即$(document).ready(function() { //look for elements in the dom structure });

所以$(".slick-form")尽快这样做可能还为时过早......除非您在调试器中的该行上放置一个断点,否则您不会看到问题。

如果您这样做是异步的,那么您可能需要在该 ajax 函数的成功回调上应用 click 事件。

通常喜欢这样的事情:

$.ajax({
    type: "GET",
    url: '/blah',
    data: formData,
    success: function (data) {
        // the callback, add click event now that form will exist in DOM
    }
});

或考虑其他方法来实现它,例如这个例子:

jquery 函数不适用于异步加载的 dom 元素

于 2013-01-24T01:34:00.540 回答