Я пытаюсь создать страницу, на которой вы заполняете некоторые поля ввода и проверяете переключатель, и если вы заполните все это, вы можете щелкнуть div, и анимация произойдет. Конкретные поля ввода не являются единственными на странице. Я пытаюсь использовать оператор javascript "if", в котором есть скобки "и" и "или" в круглых скобках, но когда я открываю страницу, код не запускается. Это не весь мой код, и я знаю, что javascript и его библиотеки связаны, потому что я некоторое время кодировал этот сайт, и все работает до сих пор. Я проверил код в валидаторе JavaScript, и это выглядело прекрасно. Я не уверен, что я делаю неправильно.
$(document).ready(function(){
if ( $(".managementCompanyName").val() !== '' &&
$(".approvedBy").val() !== '' &&
$(".contractStartDate").val() !== '' &&
$(".proposalNumber").val() !== '' &&
$(!$("input[name='proposalReviewedForInvoice']:checked").val() || !$("input[id='proposalNotReviewedForInvoice']:checked").val()) ) {
//do stuff
}
});
В качестве альтернативы у меня есть
$(document).ready(function(){
if ( $(".managementCompanyName").val() !== "" &&
$(".approvedBy").val() !== "" &&
$(".contractStartDate").val() !== "" &&
$(".proposalNumber").val() !== "" &&
$("input[name='proposalReviewedForInvoice']:checked").val() !== "" ) {
//do stuff
}
});
Этот код, похоже, работает с другой частью сайта, где в качестве требования требуется только один вход. Спасибо, если вы заметите мою ошибку.
Оберните ||
часть в круглых скобках, в противном случае первый операнд ||
на самом деле является последним результатом последнего &&
.
/*$*/(!$("input[name='proposalReviewedForInvoice']:checked").val() ||
!$("input[id='proposalNotReviewedForInvoice']:checked").val()) ) {
И на самом деле кажется, что вы скорее сделали их завернутыми в $()
, которые всегда будут возвращать объект jQuery, который всегда будет "правдивым" в этом состоянии.
для обработки ошибок намного лучше, если вы использовали только условие "ИЛИ (||)".
$(document).ready(function(){
var management = $(".managementCompanyName").val();
var approved = $(".approvedBy").val();
var contract = $(".contractStartDate").val();
var proposed_num = $(".proposalNumber").val();
var proposed_rev = $("input[name='proposalReviewedForInvoice']:checked").val();
if ( management == '' || approved == '' || contract == '' || proposed_num == ''
|| proposed_rev == '' ) {
// error message
} else {
// do stuff
}
});
||
связывает сильнее, чем&&
, см. приоритет оператора