更改操作href

时间:2016-10-19 08:20:29

标签: jquery html forms checkbox

我有一个表单,应根据复选框更改操作href。一个操作是contact.html,另一个是链接到负责订阅的外部页面(freshmail)。例如https://stackoverflow.com。如果我将操作更改为https://stackoverflow.com,则表单不会向我的电子邮件发送消息,而只会转到https://stackoverflow.com 如何将其更改为始终发送电子邮件,但仅在选中复选框时才注册到新邮件?

$('#site.contact #left :checkbox').change(function() {
  if($(this).is(":checked")) {
  console.log('checked');
  $('.jsForm').attr('action', 'https://app.freshmail.com/pl/actions/subscribe/');
} else {
  $('.jsForm').attr('action', 'kontakt.html');
  console.log('unchecked');
}

上面的代码完美地改变了行动,但下一步是什么?

2 个答案:

答案 0 :(得分:0)

$('#idcheck').change(function() {
  if($(this).is(":checked")) {
  alert("ola");
  console.log('checked');
  $('.jsForm').prop('action', 'https://app.freshmail.com/pl/actions/subscribe/');
} else {
  $('.jsForm').prop('action', 'kontakt.html');
  console.log('unchecked');
}

});

尝试使用prop代替attr并关闭更改(function(){code});

答案 1 :(得分:0)

试试这个

$(function() {
  $('#jsForm').on('submit', function(e) {
    if ($("#subscribe").is(":checked")) {
      e.preventDefault(); // stop submission
      $(this).prop('action', 'https://app.freshmail.com/pl/actions/subscribe/');
      $.get("kontakt.html",function(data) {
        $("#result").html(data); // success
        setTimeout(function() {
          $('#jsForm').submit(); // note: there can be nothing name="submit" in the form
        },2000); // give them a chance to read
      });
    });
  }
});
使用

<form id="jsform" action="kontakt.html">
  <input type="checkbox id="subscribe" />
  <input type="submit" />
</form>
<span id="result"></span>