如果语句不能在 Javascript 单选按钮上正常工作

If Statements not working correctly with Javascript Radio Button

本文关键字:常工作 工作 不能 语句 Javascript 单选按钮 如果      更新时间:2023-09-26

我有一个关于我的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 属性是一个布尔值,用于告知是否选中了该收音机。