【问题标题】:validationEngine: condRequired when checkbox is ticked验证引擎:勾选复选框时需要 cond
【发布时间】:2013-09-17 17:52:47
【问题描述】:

我环顾四周,没有看到其他人遇到此问题。我正在使用validationEngine 并遇到一个问题,即勾选特定复选框时需要2 个输入。即使没有打勾,他们仍然说他们是必需的。

    <td>
      <input type="checkbox" value="true" name="Availability_MondayIsAvailable" id="Availability_MondayIsAvailable" checked="checked">&nbsp;&nbsp;Monday
    </td>
    <td>
      <input type="text" value="0:00 AM" size="5" name="Availability_MondayStartTime" id="Availability_MondayStartTime" class="validate[condRequired[Availability_MondayIsAvailable],custom[timeForm]]">


    </td>
    <td><input type="text" value="7:00 PM" size="5" name="Availability_MondayEndTime" id="Availability_MondayEndTime" class="validate[condRequired[Availability_MondayIsAvailable]]">

    </td>

该框已打勾。无论如何,我都会根据需要取消勾选它和输入警报。

更新 我采用了@Shafeeq 提供的内容并创建了这个来处理所有 7 天。

function availableDay(day) {
        var yourselector = '#Availability_' + day + 'IsAvailable';
        var yourselectorStart = '#Availability_' + day + 'StartTime';
        var yourselectorEnd = '#Availability_' + day + 'EndTime';
        var onClass = 'validate[condRequired[Availability_' + day + 'IsAvailable],custom[timeForm]]';
           if ($(yourselector).is(':checked')) {
               $(yourselectorStart).attr( "class", onClass );
               $(yourselectorEnd).attr( "class", onClass);
           }
           else {
               $(yourselectorStart).attr( "class"," ");
               $(yourselectorEnd).attr( "class"," ");
           }
}

我还将此添加到文档中,以触发先前选中的框的更改功能。

$("input[type='checkbox']").trigger("change");

我不确定这个问题是验证引擎中的错误还是什么...

【问题讨论】:

    标签: jquery forms validation jquery-validation-engine


    【解决方案1】:

    如果您已将 jquery 验证类添加到元素,它总是经过验证,如果您不希望需要,则需要删除该类。为此,您可以在复选框中使用 javascript 函数

      <input type="checkbox" value="true" onchange="set_validation()" name="Availability_MondayIsAvailable" id="Availability_MondayIsAvailable" checked="checked">&nbsp;&nbsp;Monday
    

    在你的javascript中添加这个函数

    function set_validation() {
       if ($('#Availability_MondayIsAvailable').is(':checked')) {
           $( "#Availability_MondayStartTime" ).attr( "class", "validate[condRequired[Availability_MondayIsAvailable],custom[timeForm]]" );
           $( "#Availability_MondayEndTime" ).attr( "class","validate[condRequired[Availability_MondayIsAvailable]]");
       }
       else {
           $( "#Availability_MondayStartTime" ).attr( "class"," ");
           $( "#Availability_MondayEndTime" ).attr( "class"," ");
       }
    }
    

    【讨论】:

    • 好吧,condRequired 应该只在它命名的字段有值时才使这个字段成为必需的,但这可能是一个错误。谢谢!我会这样尝试。
    • 知道如何在使用data-validation-engine 标签而不是类时使其工作吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 1970-01-01
    相关资源
    最近更新 更多