jQuery触发器之前定义的onclick来自新窗口中的链接

时间:2017-11-02 07:44:43

标签: php jquery html5 forms

我正在使用jquery onclick提交表单。在PHP方面,它会检查是否已存在同名的现有文档。如果为true,则在响应中返回一个小表单,其中包含3个选项,具体取决于记录数据。这些选项显示在消息窗口中。其中一个选择需要重新提交以前的表单数据,替换新名称。

问题是,加载页面时更改名称表单不存在,因此无法识别新表单中的ClickCheck类。

如何使用新的DocName重新提交此表单?

主表单中的提交(实际上这是四个提交中的一个)

    <a class="ClickCheck" id="Create" href="javascript:void(0)">Create Bill</a>

jQuery:

$('.ClickCheck').click(function()
{
    var ButtonID = $(this).attr('id');
    $('#Clicked').val(ButtonID);
    var Form = $('#TheForm');
    if(ButtonID == "Save")
    {
        // Do save code
    }
    else
    {
        var FormData = Form.serialize();
        $.ajax(
        {
            type: "POST",
            url: "scripts/Ajax.php",
            data: FormData,
            success: function(response)
            {
                $('#MWContent').html(response);
                $('#MessageWindow').show();
            }
        });    
    }
});

然后,在回复中,我有:

<form id="ChangeName" name="ChangeName">
  Use another name:
  <input type="text" id="DocName" name="DocName" size="60" maxlength="60" value="" placeholder="Document Name" />
  <a class="ClickCheck" id="NewName" href="javascript:void(0)">Go</a>
</form>

我们的想法是让“NewName”重新提交表单(当然是使用新名称。)当然,我可以在点击功能中检测到它。

1 个答案:

答案 0 :(得分:1)

您可以将click()事件附加到document以使其成为全局。

$(document).on('click', '.ClickCheck', function(e){
  e.preventDefault() // <<<< Either this
  // Do stuff
  return false      // <<<< Or this
})

http://api.jquery.com/on/

也不要使用href="javascript:void(0)",在回调函数中使用return falsee.preventDefault()