单选按钮验证导致其余验证失败

时间:2013-05-02 21:09:50

标签: javascript forms radio-button validation

无线电验证有效,但其余部分则无效。我做错了什么?

function validateRadio(radios) {
    for (i = 0; i < radios.length; ++i) {
        if (radios[i].checked) return true;
    }
    return false;
}

function validateForm() {
    if (validateRadio(document.forms["pancettaForm"]["updateShip"])) {
        return true;
    } else {
        alert("Please tell us how you would like to update your order.");
        return false;
    }
}

var x = document.forms["pancettaForm"]["order-number"].value;
if (x == null || x == "") {
    alert("Please provide your order number.");
    return false;
}
var x = document.forms["pancettaForm"]["full-name"].value;
if (x == null || x == "") {
    alert("Please provide your full name, or the recipients name if you are updating shipping information.");
    return false;
}
var x = document.forms["pancettaForm"]["phone"].value;
if (x == null || x == "") {
    alert("Please provide a phone number in case of delivery questions.");
    return false;
}
var display = document.getElementById('address').style.display;
if (display == 'block') {
    var x = document.forms["pancettaForm"]["address"].value;
    if (x == null || x == "") {
        alert("Please provide your address.");
        return false;
    }
}
var display = document.getElementById('city').style.display;
if (display == 'block') {
    var x = document.forms["pancettaForm"]["city"].value;
    if (x == null || x == "") {
        alert("Please provide your city.");
        return false;
    }
}
var display = document.getElementById('state').style.display;
if (display == 'block') {
    if (document.pancettaForm.state.value == "- Select State -") {
        alert("Please provide your state.");
        return false;
    }
}
var display = document.getElementById('zip').style.display;
if (display == 'block') {
    var x = document.forms["pancettaForm"]["zip"].value;
    if (x == null || x == "") {
        alert("Please provide your zip code.");
        return false;
    }
}
var display = document.getElementById('newShipDate').style.display;
if (display == 'block') {
    if (document.pancettaForm.state.value == "- Select Date -") {
        alert("Please choose your new shipping date.");
        return false;
    }
}

1 个答案:

答案 0 :(得分:0)

只需反转测试,就不必返回

    if(!validateRadio (document.forms["pancettaForm"]["updateShip"]))
            {
                alert("Please tell us how you would like to update your order.");
                return false;
            }

   // continue

在无线电测试后你有了结束括号,所以脚本的其余部分只是浮在网络空间

同样在结尾处只返回一次,并且多次没有var x,并且在访问表单元素方面保持一致,我还修复了测试状态的日期测试

function validateForm() {
  var x,display,form = document.forms["pancettaForm"];
  if (!validateRadio(form["updateShip"])) {
    alert("Please tell us how you would like to update your order.");
    return false;
  }

  x = form["order-number"].value;
  if (x == null || x == "") {
    alert("Please provide your order number.");
    return false;
  }
  x = form["full-name"].value;
  if (x == null || x == "") {
    alert("Please provide your full name, or the recipients name if you are updating shipping information.");
    return false;
  }
  x = form["phone"].value;
  if (x == null || x == "") {
    alert("Please provide a phone number in case of delivery questions.");
    return false;
  }
  display = form["address"].style.display; 
  if (display == 'block') {
    x = form["address"].value;
    if (x == null || x == "") {
        alert("Please provide your address.");
        return false;
    }
  }
  display = form["city"].style.display;
  if (display == 'block') {
    x = form["city"].value;
    if (x == null || x == "") {
        alert("Please provide your city.");
        return false;
    }
  }
  display = form['state'].style.display;
  if (display == 'block') {
   x = form['state'].value;
    if (x == "- Select State -") {
        alert("Please provide your state.");
        return false;
    }
  }
  display = form['zip'].style.display;
  if (display == 'block') {
    x = form["zip"].value;
    if (x == null || x == "") {
        alert("Please provide your zip code.");
        return false;
    }
  }
  display = form["newShipDate"].style.display;
  if (display == 'block') {
    x = form["newShipDate"].value;
    if (x.value == "- Select Date -") {
        alert("Please choose your new shipping date.");
        return false;
    }
  }

  return true;
}