javascript:如果选中了单选按钮,则在提交等待2秒后,然后显示警报

时间:2018-03-08 04:34:34

标签: javascript radio-button settimeout onsubmit

我正在尝试设置单选按钮,以便在选中时,在提交等待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">

4 个答案:

答案 0 :(得分:1)

onsubmit适用于<form>,而非<button>。您需要将提交按钮放在<form>内,然后才能将onsubmit添加到表单标记中。

或者,如果您只想在单选按钮更改时创建弹出窗口,则可以使用单选按钮的onclick属性,例如

更新:使用jQuery的示例

假设您的表单如下所示:

<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');
  }
}