从单选按钮发送值

时间:2017-11-27 22:04:32

标签: javascript html forms function

我正在开发一个有一种测验的网站。我目前要做的是当我点击提交时将值发送到我的函数,如果是0则写入" false"如果它是1则写入"传递"。我写了JavaScript,但它不起作用,我不确定为什么。当我点击单选按钮时,写入HTML事件就会触发,我认为这是因为我有它的onclick。我不知道如何在没有它的情况下发送价值,如果这样可以解决问题。我也知道,无论我点击什么,而不是"传递" for no和" false"是的。当我按下提交按钮时,它无法正常工作。错误/传递不应该出现,直到它被按下,而是当我按下提交按钮它将改变" false"通过"通过"。我不知道如何修复这些或为什么这样做。

感谢您的帮助,如果需要进一步澄清,请告诉我。

这是我的HTML

            <body>
             <form id="myForm">
         <div class="sub form-row align-items-center">
             <div class="col">
            <fieldset>
                <h3><legend>Eligibility Test</legend></h3>
            </fieldset>
             </div>
             </div>
             <div class="col">
               <fieldset>
                   <div class="col">
                <legend>Have you had your record expunged before?</legend>
                  <input type="radio" name="field1" id="field1" value="0" onclick="getscores1()"/>
                     <label>
                     Yes
                </label>
                    <input type="radio" name="field1" id="field1" value="1" onclick="getscores1()"/>
                 <label>
                     No
                </label>
                </fieldset>
             </div>
             <div class="col">
             <div class="row">
                 <fieldset>
                <legend>Do you have any charges pending against you?</legend>
                  <input type="radio" name="field2" id="field2 value="0" onclick="getscores2()"/>
                     <label>
                     Yes
                </label>
                       <input type="radio" name="field2" id="field2 value="1" onclick="getscores2()"/>
                 <label>
                     No
                </label>
            </fieldset>
                 </div>
             </div>
             <fieldset id="submitbutton">
                 <input type="button" id="submit" value="submit" 
             onclick='answer()' />
            </fieldset>
             <p id="totalScore">this is answer </p>

这是我的JavaScript

             <script>
             function getscores1(){
             score1= document.getElementById('field1').value;
             answer(score1);
             }
             function answer(score1){
             if (score1 == 0 ){
             document.getElementById('totalScore').innerHTML = "false";
             }
             else{
             document.getElementById('totalScore').innerHTML = "pass";
             }
             }

             </script>

1 个答案:

答案 0 :(得分:1)

由于以下原因,它无法正常工作:

  • 您在</div>
  • 之前错过了</fieldset>
  • 您有重复的ID(2 field1和2 field2
  • 您的重复field2 ID都缺少结束引号

考虑到您不允许重复ID,我建议您删除这些ID。当您在点击两个单选按钮时调用该功能,而不是使用ID,您实际上只需将元素本身传递给使用 this 运算符作为{的函数。 {1}}。

然后你必须调整你的函数以将参数作为函数参数:

onclick="getscores1(this)"

在以下示例中可以看到这一点:

&#13;
&#13;
function getscores1(score1) {
  answer(score1.value);
}
&#13;
function getscores1(score1) {
  answer(score1.value);
}

function answer(score1) {
  if (score1 == 0) {
    document.getElementById('totalScore').innerHTML = "false";
  } else {
    document.getElementById('totalScore').innerHTML = "pass";
  }
}
&#13;
&#13;
&#13;

希望这有帮助! :)