我无法在隐藏的输入字段中更改value属性。我有一个包含以下HTML的表单:
<input type="hidden" name="caitlinisdabomb" id="caitlinisdabomb" value="no" />
当我右键点击&gt;查看源值未更改。发送表单时,标题中也会发送错误的值。 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");
});
答案 0 :(得分: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 functions dont work on dom elements loaded asynchromously