2013-04-22 108 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