2013-01-24 66 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