1

我把我的代码放在下面。它基本上有一个文本输入和一个“搜索”按钮(表单)。每当单击搜索按钮(提交表单)时,它必须转到 .submit 函数并执行所需的处理。

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 具有值“未定义”。但是,如果我像这样手动设置输入的值:

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

var twitterq 现在获取值“某物”。可能是什么问题?

我是 javascript 和 jquery 的新手,所以如果这个问题有点愚蠢,我事先道歉,它已经困扰了我几个小时。

4

1 回答 1

4

不要这样做:

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

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

twitterq = $('#twitterq').val();
于 2013-04-22T14:31:49.517 回答