2013-04-22 167 views
1

我已經把我的代碼如下。它基本上有一個文本輸入和一個「搜索」按鈕(表單)。無論何時單擊搜索按鈕(表單提交),它都必須轉到.submit函數並執行所需的處理。HTML表單提交與jquery

HTML代碼:

<form id="twittersearch" name="twittersearch" method="post" action=""> 
    <input name="twitterq" type="text" id="twitterq"/> 
    <button type="submit" >Search</button> 
</form> 
<div id="twitter-results"></div> 

jQuery代碼:

$(document).ready(function() { 
    var twitterq = ''; 

    function displayTweet() { 
     var i = 0; 
     var limit = $("#twitter-results > div").size(); 
     var myInterval = window.setInterval(function() { 
      var element = $("#twitter-results div:last-child"); 
      $("#twitter-results").prepend(element); 
      element.fadeIn("slow"); 
      i++; 
      if (i == limit) { 
       window.setTimeout(function() { 
        clearInterval(myInterval); 
       }); 
      } 
     }, 20000); 
    } 

    $("form#twittersearch").submit(function() { 
     twitterq = $('#twitterq').attr('value'); 
     $.ajax({ 
      type: "POST", 
      url: "search.php", 
      cache: false, 
      data: "twitterq=" + twitterq, 
      success: function (html) { 
       $("#twitter-results").html(html); 
       displayTweet(); 
      } 
     }); 
     return false; 
    }); 
}); 

我的問題是,形式是不能將輸入的ID的 '值'= #twitterq發送給javascript .submit函數。因此,var twitterq的值爲'undefined'。 不過,如果我手動設置輸入這樣的值:

<input name="twitterq" type="text" id="twitterq" value="something"/> 

VAR twitterq現在得到值「東西」。什麼可能是這個問題?

我是javascript和jquery的新手,所以如果問題有點愚蠢,我會事前道歉,它一直在困擾我幾個小時。

回答

4

不要這樣做:

twitterq = $('#twitterq').attr('value'); 

相反,使用.val()方法:

twitterq = $('#twitterq').val(); 
+0

謝謝!它正在工作。只要stackoverflow讓我接受它作爲答案。:) – 2013-04-22 14:34:10