用于自动提交的jQuery表单代码错误

时间:2011-07-19 11:07:43

标签: javascript jquery forms

var inpt = $('#input-box').val();
if (inpt != '') {
    $('form').submit();
    alert('Voila!');           // (1)
} else {
alert('fill something man');   // (2)
}

我正在使用此代码在页面加载后自动提交表单 在这里,我无法使用jquery $(document).ready()函数,因为我在GreaseMonkey环境中 表单会自动填写,我会在特殊情况下使用(2)语句。

我没有收到警报!既不是(1)也不是(2)

更新:                              

    <label for="answer">Answer:</label>
    <input type="text" name="answer" id="input-box" />
    <input type="submit" name="submit" id="submit" value="Submit" />
</form>

3 个答案:

答案 0 :(得分:0)

alert('Voila!');           // (1)

永远不会发出警报,因为此时页面已经因发送提交请求而重新加载。

尝试:

$('form').submit(function(){
    alert('Voila!');           // (1)
}).trigger('submit');

答案 1 :(得分:0)

尝试在提交前发出提醒。

var inpt = $('#input-box').val();
if (inpt != '') {
    alert('Voila!');           // (1)
    $('form').submit();
} else {
    alert('fill something man');   // (2)
    return false; // to stop submitting
}

如果您希望在用户输入值后自动提交,则可以执行以下操作:

$('#input-box').live('blur',function(){

    var inpt = $('#input-box').val();
    if (inpt != '') {
        alert('Voila!');           // (1)
        $('form').submit();
    } else {
        alert('fill something man');   // (2)
        return false; // to stop submitting
    }

});

答案 2 :(得分:0)

Greasemonkey在onready之后执行代码,这应该可行。但页面上是否有表格,您是否正在获取正确的表格?这里的信息很少。

首先尝试检查firebug中的函数,它应该在那里运行。 greasemonkey需要一些工作才能理解jquery-thing。简单的方法是使用var $ = unsafeWindow.jQuery;在一开始,如果您所在的页面有jQuery。