2013-01-24 64 views
0

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

<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"); 
      }); 

回答

1

当是.slick-form元素存在?你是否加载页面或者你是否异步加载?

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

这样$(".slick-form")尽快可能是太早......你不会看到一个问题,除非你在调试器中在该行上粘贴一个断点。

如果你这样做异步,那么你就需要对AJAX功能可能成功的回调应用点击事件..

通常像这样的事情:

$.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