2015-03-02 47 views
0

對於未勾選複選框並且用戶點擊提交時的eaxmple,我們需要顯示錯誤消息「請選中複選框」。如果複選框被選中並且超鏈接沒有被用戶點擊,我們需要顯示錯誤消息「請點擊鏈接」。 我的代碼在提交之前驗證超鏈接和複選框

   <script> 
      var state = 0; 
      $("#AcceptMe").click(function() 
       { 
       state=1; 
      }); 
      if(state == 0) 
       { 
       alert("please click"); 
       } 
       </script> 
       </head> 
       <body> 
       <form> 
       <a id="Link1" href="#">click</a> 
       <input type="checkbox" id="AcceptMe"> 
       <input type="submit" name="submit"> 
       </form> 

回答

0

這不是一個很好的解決方案,因爲當用戶點擊了兩次,他/她取消選中該複選框,但「狀態」仍然是1

檢查該複選框檢查這樣的:

var isChecked = $('#AcceptMe').is(':checked')?true:false; 

現在的「器isChecked」變量將包含真或假,所以你應該先給提交按鈕的ID和type =「按鈕」(否則它會嘗試提交):

<input type="button" value="submit" name="submit" id="submitForm"/> 

添加clickHandler事件像這樣的鏈接:這裏

$('#submitForm').click(function(){ 
    var isChecked = $('#AcceptMe').attr('checked')?true:false; 
    if(isChecked){ 
     alert('checked!'); 
     if(linkClicked){ 
      alert('Link clicked!'); 
     } 
     else{ 
      alert('Click link first!'); 
     } 
    else{ 
     alert('please check the checkbox!'); 
    } 
}); 

的jsfiddle:根據該功能時,您的javascript函數clickhandler添加到提交按鈕

var linkClicked = false; 
$('#Link1').click(function(){ 
    linkClicked = true; 
}); 

然後http://jsfiddle.net/8o4an9xf/

請請注意,您應該添加target =「_ blank」,因爲鏈接將覆蓋document.location。或者你可以打開你想在模式窗口中顯示的內容(這是更好的)。我認爲你必須使用「返回false」

+0

HW驗證標籤鏈接??? – user3608270 2015-03-02 10:41:21

+0

檢查我的編輯,當有人點擊鏈接時,頁面將刷新。所以你應該在新窗口中打開鏈接,或者在某個模式窗口中打開鏈接。 – 2015-03-02 10:43:46

+0

感謝你的回覆..但是,如果我點擊提交nthng得到happng – user3608270 2015-03-02 10:50:30

0

我認爲你必須使用「返回false」

我的代碼是清晰和簡單的。 如果其沒有關係的你有主代碼嘗試如下:

<body> 
    <form> 
     <a id="Link1" href="#" onclick="$('#Link1').addClass('visited'); 
      alert('add \'visited\' class to \'#Link1\'');"> 
     </a> 
     <input type="checkbox" id="AcceptMe" /> 
     <input type="submit" name="submit" onclick=" 
      if( $('#AcceptMe').is(':checked')){      
       alert('checkbox is :' + $('#AcceptMe').is(':checked')); 
       if(!$('#Link1').hasClass('visited')){ 
        alert('please visit link1'); 
        return false; 
       }; 
      }else{ 
      return false; 
      } 
     " /> 
    </form> 
</body>