我正在尝试设置单选按钮,以便在选中时,在提交等待2秒后,然后发出警报。这感觉非常接近但不起作用:
<input type="radio" name="option" id="email" value="email" onsubmit="setTimeout(function() { alert('You chose email'); },2000);">
我的提交按钮:
<button type="submit" name="choice" value="choice">
答案 0 :(得分:1)
onsubmit
适用于<form>
,而非<button>
。您需要将提交按钮和放在<form>
内,然后才能将onsubmit
添加到表单标记中。
或者,如果您只想在单选按钮更改时创建弹出窗口,则可以使用单选按钮的onclick
属性,例如
假设您的表单如下所示:
<form id="myForm">
<input type="radio" name="option" id="email" value="email">
<button>Submit</button>
</form>
您可以在提交表单时触发事件:
$("#myForm").submit(function(event) {
if($("#email").is(':checked')) {
setTimeout(function() {
alert('You chose email');
}, 2000);
}
event.preventDefault(); // prevent page from being reloaded
});
答案 1 :(得分:0)
您可能希望将onsubmit
属性切换为onclick
并将其放在提交按钮上..对于它所调用的函数,类似这样的内容:
// javascript
function submit() {
if (document.getElementById('#email').checked == true) {
setTimeout(function () {alert('you chose mail')}, 2000)
}
}
//html
<input type="radio" name="option" id="email" value="email">
<button type="submit" name="choice" value="choice" onclick="submit()">
答案 2 :(得分:0)
netstat
var submit = false;
$('form').submit(function(e) {
if($('#email').is(':checked')) {
setTimeout(function() {
alert("it's checked");
submit = true;
$("form").submit(); // if needed
},2000);
if(!submit)
e.preventDefault();
}
});
.container {
width: 600px;
margin:auto;
}
答案 3 :(得分:0)
有许多事情你应该直接达到你所要求的。给这个一个 - 它告诉你是否在2秒后选择了电子邮件。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<form method="post">
<input type="radio" name="option" id="email" value="email">
<button type="submit" name="choice" value="choice">Test</button>
</form>
</div>
$('#form').submit(function(e) {
e.preventDefault();
setTimeout(sayit,2000);
});
var sayit = function() {
if( $('#email').prop('checked') ) {
alert('You chose email');
}
else {
alert('You didn\' chose anything');
}
}