我对焦点事件有2个内联函数调用。
如果第一个函数返回true而不调用第一个函数中的第二个函数,我希望第二个函数运行。
此字符串01-Dec-2018 - t57 ( 1 )0
内的可用库存量。
我尝试了以下代码,但没有输出。
function checkStockAvailable(batchNo, qty) {
var startpos = batchNo.indexOf("( ");
var endpos = batchNo.indexOf(" )");
var stockQty = batchNo.substring(startpos + 2, endpos);
if (qty > stockQty) {
alert("Entered quantity can not be greater than stock quantity, please try again.");
return false;
}
if (qty <= stockQty) {
return true;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="number" value="10" onfocusout="if((return checkStockAvailable('01-Dec-2018 - t57 ( 1 )0', $(this).val())) == true){saveDetailData('1',$(this).val(),'columnName' )})">
无输出显示
答案 0 :(得分:0)
function function1(batchNo, qty) {
var startpos = batchNo.indexOf("( ");
var endpos = batchNo.indexOf(" )");
var stockQty = batchNo.substring(startpos + 2, endpos);
if (qty > stockQty) {
alert("Entered quantity can not be greater than stock quantity, please try again.");
return false;
}
if (qty <= stockQty) {
return true;
}
}
function function2(a,b,c){
alert('yes came in function 2');
}
<input type="number" value="10" onfocusout="function1('01-Dec-2018 - t57 ( 1 )0','10') && function2('4','5','6')"/>
您可以通过这样做来简化通话
onfocus="function1() && function2()"
如果function1返回真实值,则将运行function2;如果function1返回假值,则将忽略function2。
查看此fiddle。尝试更改function1的返回值以查看效果。
答案 1 :(得分:0)
您可以将data-*
global attributes与其他信息一起使用,并将其用于检查。
function checkStockAvailable(element) {
var qty = +element.value,
stockQty = +element.dataset.stockQty;
console.log(qty, stockQty);
if (qty <= stockQty) return true;
console.log("Entered quantity can not be greater than stock quantity, please try again.");
}
<input
type="number"
value="10"
onfocusout="checkStockAvailable(this)"
data-batch-no="01-Dec-2018 - t57 ( 1 )0"
data-stock-qty="1"
>
答案 2 :(得分:0)
<input type="number" value="10" onfocusout="if(f1()){f2()}">
<script>
function f1() {
return true;
}
function f2() {
alert(4);
}
</script>
答案 3 :(得分:-1)
您可以使用onfocusout= "func1() && func()"
(由@Shahzad回答)
func1()
将用于您的条件语句,而func2()
将依赖于func1()
如果您仍然面临问题,则可能存在一些suntax问题。
function uppercase() {
var x = document.getElementById("tText");
x.value = x.value.toUpperCase();
}
function checkBoolean(){
return true;
}
<input type="text" id="tText" value="test" onfocusout="checkBoolean() && uppercase()">