簡體   English   中英

onclick使用javascript單選按鈕

[英]onclick for radio button using javascript

我正在嘗試為該調查編寫該程序,我希望用戶回答該問題,完成調查后,他們將單擊“提交”,並顯示對選擇的確認。 我無法讓它為我的一生工作。

這是我的代碼:

<!DOCTYPE html>
<title> Satisfaction Survey </title>
<script Language ="Javascript">
  function testpage() {  
    errmsg = " ";
    confirmmsg = " ";
    errflag = false; 

    if ( document.form1.rdservice[0].checked == true ) {
      confirmmsg = confirmmsg + "<br> Overall is very satsified" ;
    }

    if ( document.form1.rdservice[1].checked == true ) {
      confirmmsg = confirmmsg + "<br> Overall is satisfied" ;
    }

    if ( document.form1.rdservice[2].checked == true ) {
      confirmmsg = confirmmsg + "<br> Overall is neutral" ;
    }

    if ( document.form1.rdservice[3].checked == true ) {
      confirmmsg = confirmmsg + "<br> Overall is unsatsified" ;
    }

    if ( document.form1.rdservice[4].checked == true ) {
      confirmmsg = confirmmsg + "<br> Overall is very unsatsified" ;
    }

    if ( (doucment.form1.rdservice[0].checked == false) &&        
         (doucment.form1.rdservice[1].checked == false) && 
         (doucment.form1.rdservice[2].checked == false) && 
         (doucment.form1.rdservice[3].checked == "false") && 
         (doucment.form1.rdservice[4].checked == false)) {
      errflag = true;
      errmsg  = errmsg + "<br> You forgot to select an option";
    }
  }
</script>

<body>
  <form  name=form1  method="post">
    <fieldset>
      <legend> Please take a few moments to complete this satisfaction survey.  </legend>   
    <fieldset>  
    <legend> Overall, how satisfied were you with the product / service? </legend>
    <input type="radio" name="rdservice" value="v"> Very Satisfied
    <br>
    <input type="radio" name="rdservice" value="s"> Satisfied
    <br>        
    <input type="radio" name="rdservice" value="n"> Neutral
    <br>
    <input type="radio" name="rdservice" value="un"> Unsatisfied
    <br>
    <input type="radio" name="rdservice" value="vu"> Very   Unsatisfied
  </fieldset>
  <fieldset>
    <input type="submit" name="subm1" value="Submit"  onclick="testpge()">
    <input type="Reset"  name="Res1"  value="Reset Form">
  </fieldset>       
  </fieldset>
</body>
</form>
</html>

代碼有點混亂,我可以建議使用jquery( https://jquery.com/download/ )嗎? 它將使您的生活更加輕松!

這是您需要的jQuery代碼:

var confirmmsg = "";
var errflag = false; 
var errmsg = "";

$.each($('form input[type=radio]'), function() {
    if($(this).is(":checked")) {
      confirmmsg += "<br> Overall is " + $(this).text();
    } else {
      errflag = true;
    }  
});

if (errflag) {
  errmsg  = "<br> You forgot to select an option";
}

此代碼接受每個輸入單選元素,並檢查是否已選中,然后進行確認。如果其中一個未選中,則errflag變為true,同時設置errmsg

順便說一句,我認為您需要復選框而不是單選輸入

(非jQuery方法)

作為“按鈕”的表單輸入只是按鈕。 您可以將事件附加到這些輸入,但是它們與提交表單無關。 如果要制作發送表單的按鈕,則應將“類型”屬性設置為“提交”。 然后,您可以通過將事件“ onsubmit”添加到<form>標記而不是按鈕中來驗證JavaScript中的<form> 如果有人按下清除表單的按鈕,也可以使用“ onreset”來捕獲事件。 如果要添加“ onsubmit”功能,例如:

onsumit="return testpage(this);"

您可以輕松決定在該函數內部,是否應該發送表格。 您可以通過返回值來實現。 如果返回true,則將發送表格,如果返回false,則將不發送表格。 您還可以通過將<form>標記的“ action”屬性設置為“ javascript:void(0);”來禁用發送表單。

在您的代碼中,我會將“ onsubmit”事件添加到<form>標記中,並且將從提交按鈕中刪除“ onclick”(您正在調用函數,然后發布表單),並且我還將函數代碼更改為:

function testpage(frm)
{
  var radioBoxSelected = false;
  for(var i=0; i < frm.elements.length;i++)
  {
    if (frm.elements[i].type == 'radio' && frm.elements[i].checked) {
      radioBoxSelected = true;
      val = frm.elements[i].value;
      // You can move messages to attribute "value" of radio boxes
      alert('You have selected: ' + val);
      // Below line sets some tag inner content to radiobox "value" attribute
      document.getElementById("satisfied_value").innerHTML = val;
      // Uncomment if you want send form here
      //return true;
    }
  }
  if (!radioBoxSelected) {
    alert('Please select option!');
    return false;
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM