jQuery提交表单不起作用

时间:2012-11-20 07:26:05

标签: javascript jquery html html-form

<form accept-charset="UTF-8" action="/twitts" class="dialog   " id="twitt-form" method="post" title="Dialog" selected="true">
    <div style="margin:0;padding:0;display:inline">
        <input name="utf8" type="hidden" value="✓">
        <input name="authenticity_token" type="hidden" value="BkLNJsJfbEzfQrCTDWHW4OvvOh0l2pLPxxEJ/bGt2IY="></div>

        <input id="anonymous_id" name="anonymous[id]" type="hidden" value="22">
        <fieldset>

            <h1>Отправить сообщение</h1>
            <a class="button leftButton" type="cancel">Отмена</a>
            <a id="submit-twitt" class="button blueButton">Отправить</a>
            <!-- <input class="button blueButton" id="submit-twitt" name="commit" type="submit" value="Отправить" /> -->

            <input id="twitt-text" name="twitt[text]" size="30" type="text">

        </fieldset>
    <div class="spinner"></div>      
</form>

当我打电话

$('#twitt-form').submit();

在调试器或内部点击事件处理程序中,没有任何事情发生。即使将.submit处理程序设置为表单

    $('#twitt-form').submit(function() {
        $('#twitt-text').val('');
        $('#twitt-form').attr('selected', false);
        return false;
    });

处理程序可以正常工作,但表单不提交任何数据。为什么?

还有更多:当我在表单字段#twitt-text上按Enter键时,只需提交,并且.submit处理程序也可以。

3 个答案:

答案 0 :(得分:0)

 $('#twitt-form').submit(function() {
        $('#twitt-text').val(''); <---  this it will make form value  empty 
        $('#twitt-form').attr('selected', false);
        return false;             
    });

答案 1 :(得分:0)

为什么你在没有任何条件的情况下使用return false。

return false; 

是为了防止默认表单操作。这就是为什么没有提交表格。

答案 2 :(得分:0)

我在这段代码中看到了三个问题,现在已经提出了两个问题:

  1. 在提交功能中,第一行将清除输入文本字段,因此即使提交,也不会提交任何内容。
  2. 第二件事是#twitt-form是表单本身,因此它没有selected属性。
  3. 使用return false;
  4. 取消表单提交

    现在,如果您试图通过AJAX提交表单来阻止页面进入任何地方,那么这就是您可以做的一个示例:

    $('#twitt-form').submit(function(e) {
    
        $.ajax({
            url: $(this).attr('action'),
            data: $(this).serialize(),
            type: $(this).attr('method'),
            success: function(dataFromTheServer) {
                // do whatever
            }
        });
    
        $('#twitt-text').val('');
    
        e.preventDefault();
        return false;
    });
    

    但除此之外,我不确定你在这里做什么。