2017-02-10 2 views
2

В настоящее время у меня есть два поля, если только один из них заполнен. Это работает нормально, но что хлопотно добавляет минимум к #minimumField, только если другой заполняется. Как видно из следующего кода, минимальное сообщение об ошибке запускает, заполняется ли #otherField или нет.Проверка JQuery - Включить минимальное требование, если другое поле

Как получить этот минимум необходимо только при заполнении otherField?

otherField: { 
    required: function(element){ 
     return $("#minimumField").val()!="0"; 
    } 
}, 

minimumField: { 
    required: function(element){ 
     return $("#otherField").val()!=""; 
    }, 
    min: 0.01 
} 

Заранее благодарен!

EDIT: У вас есть огонь в нужное время, но как указать минимальную сумму? Он по умолчанию равен 1, но я хочу, чтобы оно составляло 0,01.

minimumField: { 
    min: function(element){ 
     return $("#otherField").val()!=""; 
    } 
} 

ответ

1

EDIT: Понял это прямо сейчас стрелять в нужное время, но как указать минимальную сумму? Он по умолчанию равен 1, но я хочу, чтобы оно составляло 0,01.

minimumField: { 
    min: function(element){ 
     return $("#otherField").val()!=""; 
    } 
} 

Это потому, что ваш return оценивает логическое ...

return $("#otherField").val() != ""; 

$("#otherField").val() != "" всегда будет возвращать true или false, поэтому вы видите минимальное значение как 1 (true).

Если вы хотите, чтобы минимальное значение, чтобы быть 0.01, то вы должны return это значение ...

minimumField: { 
    min: function(element){ 
     if ($("#otherField").val() != "") { 
      return 0.01; // min set to '0.01' 
     } else { 
      return ''; // no min value set 
     } 
    } 
} 

В качестве альтернативы, вы можете использовать селектор пользовательских :filled обеспечивают плагином ...

minimumField: { 
    min: function(element) { 
     if ($("#otherField").is(":filled")) { 
      return 0.01; // min set to '0.01' 
     } else { 
      return ''; // no min value set 
     } 
    } 
} 

И то же самое с использованием тройного оператора ...

minimumField: { 
    min: function(element) { 
     return ($("#otherField").is(":filled")) ? 0.01 : ''; 
    } 
} 

DEMO: jsfiddle.net/j11zoap7/

+0

Это сделало трюк - спасибо! – user2521295

Смежные вопросы