2017-08-11 24 views
0

我想确保用户在能够选择单选按钮之前在文本字段中输入文本。如果网关字段为空,请提醒用户他们没有在字段中输入任何内容并返回。如何检查是否输入文本框以允许用户选择单选按钮javascript

这是我到目前为止有:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<body> 
 
<div id="gatewayInput"> 
 
    \t <form> 
 
      \t <input type="text" name="gateway" placeholder="Gateway Name"><br><br> 
 
      </form> 
 
    </div> 
 

 
<div class="box1"> 
 
    <form method="post" action="javascript:alert('Success')" onsubmit="validate()"> 
 
<label class="col">Air/Ground</label> 
 
<span class="col"> 
 
    <input type="radio" name="option" id="r1" value="1" /> 
 
    <label for="r1">Air</label> 
 
    <input type="radio" name="option" id="r2" value="2" /> 
 
    <label for="r2">Ground</label> 
 
</span> 
 
    <span class="col"> 
 
    <input type="submit" class="button"/> 
 
    </span> 
 
    </form> 
 
</div> 
 
<script src ="../../../jqueryDir/jquery-3.2.1.min.js"></script> 
 
<script type="text/javascript"> 
 
function validate() { 
 
    \t if ((document.getElementsByName("gateway")[0].value == '')) { 
 
\t \t alert('Response required'); 
 
\t \t return false; 
 
\t } 
 
      else { 
 
\t \t alert('Sucess'); 
 
\t \t return true; 
 
\t } 
 
} 
 
console.log("this is my value:" + document.getElementsByName("gateway")[0].value); 
 
    $(".button").click(function(event){ 
 
      if (validate() == true) { 
 
        event.preventDefault(); 
 
        $.ajax({ 
 
          url:"testexec.php", 
 
          type: "POST", 
 
          data: {option: $('input[type=radio]:checked').val()}, 
 
          dataType: "text", 
 
          success:function(result){ 
 
          $('#div1').html(result) 
 

 
          } 
 
        }); 
 
      } 
 
     }); 
 

 
</script> 
 
<div id="div1"></div> 
 
</body>

我不认为这部分工作,它似乎要叫我的验证功能:

<form method="post" action="javascript:alert('Success')" onsubmit="validate()"> 

而且我很检查提交,有没有办法在此之前提醒用户?就像当他们点击单选按钮时,提醒他们留言?

回答

0

validate(e) {以函数声明和e.preventDefault();为函数的开头,以防止表单在运行您的代码之前提交。

function validate(e) { 
    e.preventDefault(); 
    if ((document.getElementsByName("gateway")[0].value == '')) { 
     alert('Response required'); 
     return false; 
    } else { 
     alert('Sucess'); 
     return true; 
    } 
} 
+0

不,那没用。我仍然没有弹出空白文本框的提醒 – kkmoslehpour

0

onsubmit="validate()"被复制与$(".button").click(function(event)。 您可以合并在一起:

$(".button").click(function(event){ 
    validate(); 
    event.preventDefault(); 
    ... 

既然你event.preventDefault(),没有必要对形式actiononsubmit

<form method="post"> 
+0

谢谢,这似乎工作,但弹出警告框后,它仍然运行ajax后,仍然输出到屏幕上。如果我返回不应该退出功能? – kkmoslehpour

+0

没想到我明白了。执行前我需要检查。更新后的代码。 – kkmoslehpour

相关问题