jQuery 提交仅在第二次点击后工作

Posted

技术标签:

【中文标题】jQuery 提交仅在第二次点击后工作【英文标题】:jQuery submit working after second click only 【发布时间】:2018-05-25 02:52:19 【问题描述】:

我编写的这段代码应该使用 jQuery 和 iframe 提交注册表单 (php)。

Javascript

<script type="text/javascript">
    $(document).on('click', '#reg_form_sub', function(event) 

        var error_message_lgn = $("#reg_frame").contents().text();

        $('#reg_error').text(error_message_lgn);

    );
</script>

HTML

    <iframe name="reg_frame" id="reg_frame" style="display:none;" src="register.php"></iframe>
    <table>
        <tr>
            <td>
                <p id="reg_error"></p>
            </td>
        </tr>
        <tr>
            <td><input type="email" name="reg_email" id="reg_form_input" placeholder="Email"></td>
        </tr>
        <tr>
            <td><input type="password" name="reg_pass" id="reg_form_input" placeholder="Password"></td>
        </tr>
        <tr>
            <td><input type="password" name="reg_pass_confirm" id="reg_form_input" placeholder="Confirm password"></td>
        </tr>
        <tr>
            <td><input type="submit" name="reg_submit" id="reg_form_sub" value="Send me a confirmation email"></td>
        </tr>
    </table>
</form>

这是一种工作,但是当我第一次单击按钮时没有任何反应。

当我第二次单击时,我从 PHP 获得回声(脚本提交表单、创建帐户等,但只有在第二次单击后才会收到回声)。

【问题讨论】:

为什么是style="display:none;"?也许你的 iframe 没有专注于启动,所以一旦 iframe 加载,你就必须将焦点设置到 iframe 对我来说,给定的代码正在工作.. 这里很好 【参考方案1】:

我刚刚添加了 onload,现在它可以工作了

$(document).on('click', '#reg_form_sub', function(event) 

    $('#reg_frame').on("load", function() 

      var error_message_lgn = $("#reg_frame").contents().text();

      $('#reg_error').text(error_message_lgn);

    );

  );

【讨论】:

【参考方案2】:

首先没有表单标签。如果您打算保存数据,请使用按钮单击功能。

$("button_id_name").click(function());

【讨论】:

如果你把代码读到最后你会看到,我只是没有复制/粘贴好

以上是关于jQuery 提交仅在第二次点击后工作的主要内容,如果未能解决你的问题,请参考以下文章

Jquery .remove() 仅在第二次点击时起作用

jQuery - 更改 iframe src 时仅在第二次单击时触发

日历验证错误仅在第二次通过 Jquery UI 选择日期后才消失

UIButton 切换标题。仅在第二次单击后更改

Jquery 表单仅在您第一次提交时工作,而不是第二次

Click事件监听器仅在第二次工作