我正在开发一个有一种测验的网站。我目前要做的是当我点击提交时将值发送到我的函数,如果是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>
答案 0 :(得分:1)
由于以下原因,它无法正常工作:
</div>
</fieldset>
field1
和2 field2
)field2
ID都缺少结束引号考虑到您不允许重复ID,我建议您删除这些ID。当您在点击两个单选按钮时调用该功能,而不是使用ID,您实际上只需将元素本身传递给使用 this
运算符作为{的函数。 {1}}。
然后你必须调整你的函数以将参数作为函数参数:
onclick="getscores1(this)"
在以下示例中可以看到这一点:
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;
希望这有帮助! :)