如果语句不能在 Javascript 单选按钮上正常工作
If Statements not working correctly with Javascript Radio Button
我有一个关于我的Javascript编码问题的问题。
代码如下:
function PizzaSize(form) {
if (form.size.value = "medium") {
alert("A medium size pizza has been selected.")
}
if (form.size.value = "large") {
alert("A large size pizza has been selected.")
}
}
<form name="pizzaorder">
<b><u>Size Selection</b>
</u>
<br>
<input type="radio" name="size" value="medium" onclick="PizzaSize(this.form)">Medium
<br>
<input type="radio" name="size" value="large" onclick="PizzaSize(this.form)">Large
<br>
</form>
因此,当单击其中一个单选按钮时,我会指示它运行以下功能:
但是,当我在浏览器中测试代码时,它无法正常工作。当我单击"中等"单选按钮时,我收到一条消息,指出"已选择中等大小的披萨"。当我在消息上单击"确定"时,单选按钮值会更改,因此它会选择大号披萨,然后我收到一条消息,指出"已选择大号披萨"。
有谁知道我该如何解决这个问题?我想保留该功能,但希望对其进行修改,使其正常工作,而不是目前的工作方式。任何帮助将不胜感激。
你正在使用assignment operator =
来检查错误的相等性。
使用equality operator ==
进行比较,例如
if (form.size.value = "large")
{
alert ("A large size pizza has been selected.")
}
应该是
if (form.size.value == "large")
{
alert ("A large size pizza has been selected.")
}
有 3 个运算符:"="、"=="和"==="。 使用 == 运算符检查是否相似。 "="运算符将右表达式设置为左表达式。
function PizzaSize(form) {
if (form.size.value == "medium") {
alert("A medium size pizza has been selected.")
}
if (form.size.value == "large") {
alert("A large size pizza has been selected.")
}
}
<form name="pizzaorder">
<b><u>Size Selection</b>
</u>
<br>
<input type="radio" name="size" value="medium" onclick="PizzaSize(this.form)">Medium
<br>
<input type="radio" name="size" value="large" onclick="PizzaSize(this.form)">Large
<br>
</form>
您没有使用比较运算符 (==),因此您的条件返回 true。
更好的方法是侦听输入的变化,然后运行逻辑。
如前所述,您可以在 PizzaSize 函数中解析它,而不是 this.form
然后。。
function PizzaSize(radioInput) {
if (radioInput.value=="medium") {
//do stuff
}
为了使它与 Firefox 一起工作,代码需要这样编写:
if (form.elements.size[0].checked)
{
alert("A medium size pizza has been selected.")
}
if (form.elements.size[1].checked)
{
alert("A large size pizza has been selected.")
}
请注意,它使用 form.elements.size
,而不是 form.size
。这是一个数组,其中每个元素对应于其中一个单选按钮。check 属性是一个布尔值,用于告知是否选中了该收音机。
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- javascript扫雷器floodfill算法不能正常工作