Javascript 使HTML表单提交到不同的位置

Javascript 使HTML表单提交到不同的位置,javascript,forms,if-statement,action,Javascript,Forms,If Statement,Action,希望有人能帮上忙。我有一个表单,它有一个action属性。此操作属性允许用户在提交表单时订阅新闻稿 我试图做的是,只有当用户选中了一个复选框,允许订阅时事通讯时,才使用该操作。如果未选中该复选框,则仍可以提交表单,但将重定向到单独的URL,而不考虑表单的action属性 到目前为止,这就是我所拥有的,我不擅长javascript,因此任何帮助都将不胜感激 $('document').ready(function () { $('#wifi-capture-form').submit(funct

希望有人能帮上忙。我有一个表单,它有一个action属性。此操作属性允许用户在提交表单时订阅新闻稿

我试图做的是,只有当用户选中了一个复选框,允许订阅时事通讯时,才使用该操作。如果未选中该复选框,则仍可以提交表单,但将重定向到单独的URL,而不考虑表单的action属性

到目前为止,这就是我所拥有的,我不擅长javascript,因此任何帮助都将不胜感激

$('document').ready(function () {
 $('#wifi-capture-form').submit(function() {
 var newsletterTrue= $(this).attr("data-newsletter-checked");
 var newsletterFalse= $(this).attr("data-newsletter-unchecked");   
 if ($('input.newsletter-checkbox').is(':checked')) {
  $('#wifi-capture-form').attr('action', newsletterTrue);
 else (
  $('#wifi-capture-form').attr('action', newsletterFalse);
 )    
}
}); 
}))

表格是

<form name="wifi-capture-form" id="wifi-capture-form" action="" method="post" class="f24form wifi-capture-form" data-newsletter-checked="https://email.com/t/r/s/dkhywr/" data-newsletter-unchecked="https:www.domain.com/wifi-confirm">

    <label for="fieldName">Name</label><br />
    <input id="fieldName" name="cm-name" class="form-control" type="text" />
    <label for="fieldEmail">Email</label><br/>
    <input id="fieldEmail" class="form-control" name="cm-dkhywr-dkhywr" type="email" required /><br/><br/>

    <input type="checkbox" name="newsletter" class="newsletter-checkbox" id="newsletter" value="Subscribe to newsletter"> Subscribe to our newsletter<br/><br/>

    <button type="submit" class="btn btn-primary">Submit</button> 

名称
电子邮件


订阅我们的时事通讯

提交

由于使用jQuery,您可以将事件分配给复选框,在复选框被选中/取消选中时,该复选框将动态更改操作URL。

您可以通过在提交时更改表单的操作属性值来完成此操作。以下是语法:

$("#wifi-capture-form").attr("action", wifiConfirm);
因此,您的新代码必须如下所示:

 $('#wifi-capture-form').submit(function(e) {
  var wifiConfirm = $(this).attr("data-redirect");

  /* if newslwetter checkbox is not checked, then change form action value*/
  if (!$('input.newsletter-checkbox').is(':checked')) {
    $("#wifi-capture-form").attr("action", wifiConfirm);
  } 

  f24("send", "form", "form.#wifi-capture-form");  
});

您可以在

上看到其他示例,f24是否来自另一个库?数据重定向格式错误,您错过了
/
之后的
https:
可能是解决此类问题的最佳方案。我明白了,是的,这似乎是一个更好的解决方案。这是否意味着我会在表单中留下一个空白的action属性。例如,action=”“否,保持html不变。此代码仅在复选框未选中时更改操作属性,否则,表单将提交到其原始位置,该位置已在HTMLH中设置,很可能已经完成…非常感谢您的帮助…非常感谢