要求使用Javascript选择单选按钮

时间:2019-05-12 01:34:57

标签: javascript radio-button logical-operators

我是JS的初学者,他试图创建一个带有两个选项(左/右)的单选按钮,其中需要选择两个选项之一才能使程序继续,否则它将显示一个错误画面。

我有一些代码,它们可以阻止参与者无论按什么键都可以继续进行操作(即无论是否弹出错误),或者可以使参与者无论如何都可以继续进行操作的代码(例如,即使他们(请不要选择其中一个选项。)我觉得这可能与我的逻辑运算符有关,但我不确定。我尝试使用手动XOR,但这似乎不是问题。

我使用的是经过修改的代码,所以请告诉我我是否可以/应该包含其他内容!

<div class="radio"><label><input id="option1"  name="option1" type="radio" value="Right"  />Right</label></div>
<div class="radio"><label><input id="option1" name="option1" type="radio" value = "Left" />Left</label></div>

无论如何都会导致错误的代码:

<input onclick="function filledOut(id) { return (document.getElementById(id).value == 'Left')} if(filledOut('option1') ) { next(); }else{ alert('Please provide a response.'); }" type="button" value="Continue" /> </div>
</div>

导致程序继续运行的代码:

<input onclick="function filledOut(id) { return ((document.getElementById(id).value == 'Left')|| (document.getElementById(id).value == 'Right'))} if(filledOut('option1') ) { next(); } else{ alert('Please provide a response.'); }" type="button" value="Continue" /> </div>
</div>

3 个答案:

答案 0 :(得分:0)

您需要将ID更改为其他内容。对于单选按钮,“名称”是单选按钮组。除非您要逐个查看每个项目,否则不需要ID,并且如果给他们提供ID,则它们必须与其他每个ID以及“名称”属性区分开。

https://www.w3schools.com/tags/att_input_type_radio.asp

<input id="optionRight" name="groupName" type="radio" value="Right" /> <input id="optionLeft" name="groupName" type="radio" value="Left" />

此外,您还可以将单选按钮之一设置为默认选中状态。

How to select a radio button by default?

<input id="option1" name="groupName" type="radio" value="Right" checked="checked" />

答案 1 :(得分:0)

我了解到,如果未选中任何内容,则需要显示错误;如果选中其中之一,则需要继续。

为此,您将需要检查是否选中了其中一​​个而不检查其值,并为每个单选按钮赋予唯一的ID。 您可以做类似的事情

function isChecked(id){//Instead of filledOut
  return document.getElementById(id).checked;
 //.checked returns true or false
}
if (isChecked('option1') || isChecked('option2')){
 next();
}else{
 alert("Your error message")
}

如果需要,可以使用另一个函数获取值:

function getCheckedBtnValue(){
  if(isChecked('option1')) return document.getElementById('option1').value
  if(isChecked('option2')) return document.getElementById('option2').value
  return null
}
//You can also use this function to check if any of them is checked
const value = getCheckedBtnValue();
if(value){
 next();
}else{
 alert("Your error message");
}

此外,尽量不要在HTML元素内编写JavaScript,因为这经常很难阅读。 继续使用JavaScript。

答案 2 :(得分:0)

public interface UserService extends UserDetailsService {

   UserDO loadUserByUsername(String username) throws UsernameNotFoundException;

}

checkResponse函数将检查用户单击继续按钮时是否选择了任何选项。

<form name="formName">
    <input type="radio" name="option1" id="option1" value="Right"/>Right
    <input type="radio" name="option2" id="option2" value="Left"/>Left
</form>


<input onclick="checkResponse()" type="button" value="Continue" />