【问题标题】:Submitting a second form in div with refreshed data用刷新的数据在 div 中提交第二个表单
【发布时间】:2019-10-27 15:34:09
【问题描述】:

提交表单后,数据会发布到 jquery 中的 ajax 调用中。 表单中的数据被刷新,具有不同的输入类型和新的提交按钮。

第一个html表单:

<form id="firstform">
<textarea id="firsttext"></textarea>
<input type="submit" id="firstsubmitbutton" value="send">
</form>

发布到这个 jquery:

$('#firstsubmitbutton').click(function(event){
event.preventDefault();
var cpm = $.trim($("#firsttext").val());
$.ajax({
type: "POST",
url: "result.php",
data:{ myvar: cpm }, 
success: function(data){
    $('#firstform').fadeOut('slow', function() {
       html(data).fadeIn('slow');
    });
}
});

在 result.php 中加载了替换输入类型的新数据:

echo "<input type='text' id='secondformvalue'>";
echo "<input type='submit' id='submitsecondform' value='Send second form!'>";

然后这个 jquery 没有响应

$('#submitsecondform').click(function(event){
alert('second form posted');
});

我无法让新的提交按钮工作,因为它在初始加载时是未知的。

为了使第二种形式也能正常工作,必须添加或编写什么不同的内容? (还有第三个、第四个等等?)

【问题讨论】:

  • #secondformvalue 声明/使用在哪里?检查您的控制台并查看显示的内容以及 PHP 的错误报告。我不是 JS 人,但这应该在某种程度上对你有所帮助。
  • 例如不需要。它被用来代替 alert('second form posted');您的重复标记不正确。这个问题是关于将一​​个值传递给另一个表单,而不是提交一个新表单。
  • 我发现的第二个(可能的)副本似乎解决了这个问题。
  • 不,我在搜索中也看到了这一点。它仍然是一种形式。我正在尝试在提交第一个表单后提交从 ajax-data 加载的第二个表单。
  • 我明白了。我很高兴看到下面提供的答案就是解决方案。

标签: php jquery ajax forms


【解决方案1】:

第一次加载 java 脚本时,表单不存在,因此无法根据需要注册 click 事件处理程序。

要解决此问题,您可以在 body 元素上注册事件。

以下内容应该适用于您的用例:

$('body').on('click', '#submitsecondform', function() {
    alert('second form posted');
});

【讨论】:

    猜你喜欢
    • 2012-08-13
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 1970-01-01
    相关资源
    最近更新 更多