为了账号安全,请及时绑定邮箱和手机立即绑定

要求使用Javascript选择单选按钮

要求使用Javascript选择单选按钮

LEATH 2021-05-19 13:02:03
我是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 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

<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" />

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


<script type="text/javascript">

    function checkResponse(){

        if (isChecked('option1') || isChecked('option2')){

            next();

        }else{

            alert("Your error message")

        }

    }


    function isChecked(id){


     return document.getElementById(id).checked; //returns true if any options are selected


    }


</script>


查看完整回答
反对 回复 2021-05-27
?
米脂

TA贡献1836条经验 获得超3个赞

我了解的是,如果未检查任何内容,则需要显示一个错误;如果检查其中之一,则需要继续。


为此,您将需要检查是否选中了其中一个而不检查其值,并为每个单选按钮赋予唯一的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。


查看完整回答
反对 回复 2021-05-27
  • 3 回答
  • 0 关注
  • 128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信