2015-08-26 3 views
1

Я знаю, что этот вопрос уже задан много раз, но мне трудно понять, почему return false не работает в моем коде. Я ожидаю, что когда пользователь покинет фальшивый пробел, JS должен прекратить публикацию формы. Вот мой код:

HTML:
return false in js не работает

<form name="MyForm" method="post" action=""> 
<div class="span-5"> 
<label>Select Class</label> 
<div> 
<select name="selectclass" id="selectclass"> 
<option value="none">-Select Class-</option> 
<?php while($class=mysqli_fetch_array($fetchclass)) 
{ ?>      
<option value="<?php echo $class['class_name'];?>" 
<?php if(isset($_POST['selectclass'])) { if(!strcmp($_POST['selectclass'],$class['class_name'])) echo "selected"; }?> 
><?php echo $class['class_name'];?></option> 
<?php }?>      
</select> 
</div> 
</div> 
<div class="span-5"> 
     <label>Select View</label> 
     <div> 
      <select name="selectview" id="selectview"> 
      <option value="none">-Select-</option> 
      <option value="chapter" <?php if(isset($_POST['selectview'])) { if(!strcmp($_POST['selectview'],"chapter")) echo "selected"; }?>>View Chapters</option> 
      <option value="topic" <?php if(isset($_POST['selectview'])) { if(!strcmp($_POST['selectview'],"topic")) echo "selected"; }?>>View Topics</option> 
      <option value="lecture" <?php if(isset($_POST['selectview'])) { if(!strcmp($_POST['selectview'],"lecture")) echo "selected"; }?>>View Lectures</option> 
      <option value="assignment" <?php if(isset($_POST['selectview'])) { if(!strcmp($_POST['selectview'],"assignment")) echo "selected"; }?>>View Assignment</option> 
      <option value="evaluationtest" <?php if(isset($_POST['selectview'])) { if(!strcmp($_POST['selectview'],"evaluationtest")) echo "selected"; }?>>View Evaluation Test</option> 
      <option value="exampaper" <?php if(isset($_POST['selectview'])) { if(!strcmp($_POST['selectview'],"exampaper")) echo "selected"; }?>>View ExamPapers</option> 
      </select> 
     </div> 
     </div> 
<div> 
    <input type="submit" value="View" onclick="checkview()" name="btn" class="blue-btn" /> 
    </div> 
    </div> 
</form> 

Вот мои JS:

<script type="text/javascript"> 
function checkview() 
{ 
    var classname1 = $('#selectclass').val(); 
    var select_view = $('#selectview').val(); 
    if (classname1 == 'none' || select_view == 'none') 
     { 
      alert('Please fill all fields!!'); 
      return false; 
     }; 
} 
</script> 

Когда я отправляю эту форму, она показывает мне оповещения (на не выбрав любой вариант), а затем я ожидайте, что он не будет опубликован, однако он будет опубликован. Я не могу найти способ остановить публикацию этой формы!

P.S. Я задаю вопрос в первый раз здесь. Поэтому, пожалуйста, не обращайте внимания на мои глупые ошибки.
Заранее благодарим!

+0

'onclick =" return checkview() "' - вам нужно вернуть значение из обработчика onclick, но лучше использовать '

' –

+0

'onclick =" return checkview() "' –

+0

Я предпочитаю обработчик отправки вместо '$ ('# formId'). submit (function () {....; return false;}) ' – bipen

ответ

1

сделать это как возвращение

<form name="MyForm" method="post" action="" onsubmit="return checkview() "> 

и в конце сделать это как

<input type="submit" value="View" name="btn" class="blue-btn" /> 

onsubmit это событие JS, который вызывается отправкой формы и на основе логических значений его либо doesn't submit или submits

+0

Я сделал точно так, как вы упомянули. Это дало мне HTTP Error 404.0 - Not Found и ** return checkview() ** добавлено в URL-адрес страницы. Что я сделал неправильно? –

+0

Это потому, что у вас нет никаких действий на вашей форме. @ TusharShukla я его отредактировал .. сейчас посмотрим –

+0

Это сработало! Большое спасибо ! @ Danyal Sandeelo –

Смежные вопросы