You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery嵌套else if表单验证新增配送校验后崩溃问题咨询

问题根因
  • 核心是JavaScript语法错误,你新增的配送校验分支的嵌套条件写法不符合JS语法规范:

你在else if($('#<%= Checkbox_Delivery.ClientID %>').is(':checked')) {的代码块内部,直接以else if开头写嵌套条件,但else if必须跟在if或其他else if后面,不能作为代码块的起始语句,直接导致JS引擎解析代码失败,脚本完全无法执行,看起来就是站点无报错但功能崩溃。

修复方案

把配送校验分支内的第一个else if改成if即可,修正后的代码片段如下:

// 原有其他校验逻辑保持不变
else if(valueEmail == '') {
    alert('Email Address is required.');
    evt.preventDefault();
    $('#<%=TextBox_EmailAddress.ClientID%>').focus();
}
else if($('#<%= Checkbox_Delivery.ClientID %>').is(':checked')) {
    // 此处把第一个else if修改为if即可
    if (valuedeliveryfirstname == '') {
        alert('Please enter the first name of the person the DVD is being delivered to.');
        evt.preventDefault();
        $('#<%=TextBox_DeliveryFirstName.ClientID%>').focus();
    }
    else if (valuedeliverylastname == '') {
        alert('Please enter the last name of the person the DVD is being delivered to.');
        evt.preventDefault();
        $('#<%=TextBox_DeliveryLastName.ClientID%>').focus();
    }
    else if (valuedeliveryaddress == '') {
        alert('Please enter the delivery Address.');
        evt.preventDefault();
        $('#<%=TextBox_DeliveryAddress.ClientID%>').focus();
    }
    else if (valuedeliverycity == '') {
        alert('Please enter the delivery city.');
        evt.preventDefault();
        $('#<%=TextBox_DeliveryCity.ClientID%>').focus();
    }
    else if (valuedeliverystate == 'SELECT STATE') {
        alert('Select the delivery state from the drop down list.');
        evt.preventDefault();
        $('#<%=DropDownList_DeliveryStates.ClientID%>').focus();
    }
    else if (valuedeliveryzipcode == '') {
        alert('Please enter the delivery Zip code.');
        evt.preventDefault();
        $('#<%=TextBox_DeliveryZipCode.ClientID%>').focus();
    }
}
// 后续信用卡校验逻辑保持不变
else if(valuecreditcard == 'SELECT CARD TYPE') {
    alert('Select credit card type from the drop down list.');
    evt.preventDefault();
    $('#<%=DropDownList_CreditCard.ClientID%>').focus();
}
额外排查建议
  • 这类语法错误可以通过浏览器开发者工具的控制台(按F12打开,切换到Console标签)快速定位,JS解析错误会直接在控制台输出错误行号和原因,排查效率更高。
  • 原有代码中用到的selection变量请确认是否提前定义,避免出现未定义变量的运行时错误。

内容的提问来源于stack exchange,提问作者Prescott Chartier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:39:03