我有一个表单,应根据复选框更改操作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');
}
上面的代码完美地改变了行动,但下一步是什么?
答案 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>