功能:
用户将以包括:下拉菜单,输入TextField和复选框的形式输入其详细信息。因此,第一个检查是确保填充适当的字段并且没有空白字段,如果填补了所有适当的字段,第二个条件将检查复选框是否已被打勾。根据复选框是否被打勾,它将执行第三次检查。如果检查复选框(用户只需花费50美元才能继续进行其他错误,将会出现错误),如果未检查复选框(用户只需花费100美元,其他错误将出现错误)。
)。因此,功能流如下:
if(下拉菜单_1& input text field_1已填充或下拉菜单mp mp; input text field_2已填充),它将检查复选框 ->(复选框),它将检查值 ->(如果(如果输入text field_1超过$ x或输入文本字段_2超过$ x或输入text field_1 input text field_2大于$ x)
问题:
无权对用户在TextField中输入的价值的不重新标记,始终调用该值超过50美元或100美元的条件检查。
因此,即使用户要选中框和输入20羽毛,正确的行为是显示错误msg,用户必须花费50美元,但是当前的行为允许用户提交详细信息并继续进行下一页。
我需要在错误的情况下进行一些帮助,因为检查语法是检查Textfield中的值,这是根据复选框的状态而定的。
。
//Check for Input Field
if (($.trim($("#dropDownShops_1").val()) == "" || $.trim($("#ReceiptField_1").val()) == "") && ($.trim($("#dropDownShops_2").val()) == "" || $.trim($("#ReceiptField_2").val()) == "")) {
console.log("Receipt_Field_Error wrong");
$("#ReceiptInput_Field_Error").html("* Please fill in appropriate fields.");
$("#ReceiptInput_Field_Error").fadeIn();
setTimeout(function() {
$("#ReceiptInput_Field_Error").fadeOut();
}, 5000);
} else {
//Check if American Card is used: Min spending of SGD$120 else will be min spending of SGD$150
//AmexCard User
if ($('#AmaxCardField').is(':checked')) {
//Check that the input value field is SGD$120 or more else, inform that minimum spending is SGD120
if (($("#ReceiptField_1").val() >= '120') || ($("#ReceiptField_2").val() >= '120') || [
[($("#ReceiptField_1").val()) + ($("#ReceiptField_2").val())] >= '120'
]) {
//Condition Passed
console.log("Amex user and spent more than $120");
alert("Amex user and spent more than $120");
} else {
//inform that minimum spending is SGD120
$("#ReceiptInput_Field_Error").html("* Your Minimum Spending should be $120 to qualify.");
$("#ReceiptInput_Field_Error").fadeIn();
setTimeout(function() {
$("#ReceiptInput_Field_Error").fadeOut();
}, 5000);
}
} else if ((!$('#AmaxCardField:checked').length)) {
//Check that the input value field is SGD$150 or more else, inform that minimum spending is SGD150
if (($("#ReceiptField_1").val() >= '150') || ($("#ReceiptField_2").val() >= '150') || [
[($("#ReceiptField_1").val()) + ($("#ReceiptField_2").val())] >= '150'
]) {
console.log("Amex user and spent more than $150");
alert("Amex user and spent more than $150");
} else {
//inform that minimum spending is SGD120
$("#ReceiptInput_Field_Error").html("* Your Minimum Spending should be $150 to qualify.");
$("#ReceiptInput_Field_Error").fadeIn();
setTimeout(function() {
$("#ReceiptInput_Field_Error").fadeOut();
}, 5000);
}
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="ReceiptInput_Field_Error" style="z-index:1; position:absolute; top:270px; left:650px; display: none; font-size:35px; font-family:'Gothic'; width:1080; color:#fff;"><font face="Gothic">* Please fill in appropriate fields.</font>
</div>
<form>
<!-- DropDown Menu to choose Participating Outlet -->
<select id="dropDownShops_1">
<option value="" selected disabled>Please Select Shops ...</option>
</select>
<input type="text" id="ReceiptField_1" style="z-index=10; position:absolute; top:390px; left:858px; height:58px; width:265px; outline:0; border: 0; font-size:25px; font-family:'Gothic'; color:#765725; background: transparent;" autofocus>
<select id="dropDownShops_2">
<option value="" selected disabled>Please Select Shops ...</option>
</select>
<input type="text" id="ReceiptField_2" style="z-index=10; position:absolute; top:585px; left:858px; height:58px; width:265px; outline:0; border: 0; font-size:25px; font-family:'Gothic'; color:#765725; background: transparent;">
<input type="checkbox" id="AmaxCardField" style="z-index=10; position:absolute; top:690px; left:420px; height:30px; width:30px; outline=0; border: 0; background: transparent;">
</form>
jsfiddle:https://jsfiddle.net/s42akp2k/
plunker:https://plnkr.co/edit/fletqc4gs0styhro7pnf?p=catalogue
出于某种原因,您的状态中有一个数组。我认为您打算使用括号进行分组,而不是括号。我解决了这个问题,现在正在工作。
//Check for Input Field
$('#submit').click(function(){
if (($.trim($("#dropDownShops_1").val()) == "" || $.trim($("#ReceiptField_1").val()) == "") && ($.trim($("#dropDownShops_2").val()) == "" || $.trim($("#ReceiptField_2").val()) == "")) {
console.log("Receipt_Field_Error wrong");
$("#ReceiptInput_Field_Error").html("* Please fill in appropriate fields.");
$("#ReceiptInput_Field_Error").fadeIn();
setTimeout(function() {
$("#ReceiptInput_Field_Error").fadeOut();
}, 5000);
} else {
//Check if American Card is used: Min spending of SGD$120 else will be min spending of SGD$150
//AmexCard User
if ($('#AmaxCardField').is(':checked')) {
//Check that the input value field is SGD$120 or more else, inform that minimum spending is SGD120
if (($("#ReceiptField_1").val() >= 120) || ($("#ReceiptField_2").val() >= 120) || (
(($("#ReceiptField_1").val()) + ($("#ReceiptField_2").val())) >= '120'
)) {
//Condition Passed
console.log("Amex user and spent more than $120");
alert("Amex user and spent more than $120");
} else {
//inform that minimum spending is SGD120
$("#ReceiptInput_Field_Error").html("* Your Minimum Spending should be $120 to qualify.");
$("#ReceiptInput_Field_Error").fadeIn();
setTimeout(function() {
$("#ReceiptInput_Field_Error").fadeOut();
}, 5000);
}
} else if ((!$('#AmaxCardField:checked').length)) {
//Check that the input value field is SGD$150 or more else, inform that minimum spending is SGD150
if (($("#ReceiptField_1").val() >= '150') || ($("#ReceiptField_2").val() >= '150') || (
(($("#ReceiptField_1").val()) + ($("#ReceiptField_2").val())) >= '150'
)) {
console.log("Amex user and spent more than $150");
alert("Amex user and spent more than $150");
} else {
//inform that minimum spending is SGD120
$("#ReceiptInput_Field_Error").html("* Your Minimum Spending should be $150 to qualify.");
$("#ReceiptInput_Field_Error").fadeIn();
setTimeout(function() {
$("#ReceiptInput_Field_Error").fadeOut();
}, 5000);
}
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="ReceiptInput_Field_Error"><font face="Gothic">* Please fill in appropriate fields.</font>
</div>
<form>
<!-- DropDown Menu to choose Participating Outlet -->
<select id="dropDownShops_1">
<option value="" selected disabled>Please Select Shops ...</option>
<option value="...">...</option>
</select>
<input type="text" id="ReceiptField_1" autofocus>
<select id="dropDownShops_2">
<option value="" selected disabled>Please Select Shops ...</option>
<option value="...">...</option>
</select>
<input type="text" id="ReceiptField_2" >
<input type="checkbox" id="AmaxCardField" >
<input type="submit" id="submit" />
</form>
您可能想查看它以使您的输入字段作为数字类型,然后使用数字比较代替类似的字符串(更改了比较器以删除货币符号并将其做到一个数字):
//AmexCard User
if ($('#AmaxCardField').is(':checked')) {
//Check that the input value field is SGD$120 or more else, inform that minimum spending is SGD120
if ((Number($("#ReceiptField_1").val().replace(/[^0-9.]+/g,"")) >= 120) || (Number($("#ReceiptField_2").val().replace(/[^0-9.]+/g,"")) >= 120) || (
((Number($("#ReceiptField_1").val().replace(/[^0-9.]+/g,""))) + (Number($("#ReceiptField_2").val().replace(/[^0-9.]+/g,"")))) >= 120
)) {
//Condition Passed
console.log("Amex user and spent more than $120");
alert("Amex user and spent more than $120");
} else {
//inform that minimum spending is SGD120
$("#ReceiptInput_Field_Error").html("* Your Minimum Spending should be $120 to qualify.");
$("#ReceiptInput_Field_Error").fadeIn();
setTimeout(function() {
$("#ReceiptInput_Field_Error").fadeOut();
}, 5000);
}