JQuery each()函数用于提交带有confirm的表单
我正在尝试使用jquery执行确认对话框,表单被提交,但它没有执行if条件,我有一个表单JQuery each()函数用于提交带有confirm的表单,jquery,each,confirm,Jquery,Each,Confirm,我正在尝试使用jquery执行确认对话框,表单被提交,但它没有执行if条件,我有一个表单.table,其中包含多个.profit表。提交时,我希望它检查利润表列中的每个销售价格和成本,如果成本>销售价格,则不提交,否则提交 问题是页面总是提醒确认窗口,我不知道为什么。 这就是我得到的: $(".table").submit(function(event) { $('.salePrice').each(function() { var $table = $(this).parents('.
.table
,其中包含多个.profit
表。提交时,我希望它检查利润表列中的每个销售价格和成本,如果成本>销售价格
,则不提交,否则提交
问题是页面总是提醒确认窗口,我不知道为什么。
这就是我得到的:
$(".table").submit(function(event) {
$('.salePrice').each(function() {
var $table = $(this).parents('.profit');
var cost = $table.find('.cost').val();
if( $( this ).val() < cost ) {
if(confirm("cost is larger than salePrice, are you sure?")){
result = true;
return false;
} else {
result = false;
return false;
}
}
});
if (result) {
return true;
}
else {
return false;
}});
$(“.table”).submit(函数(事件){
$('.salePrice')。每个(函数(){
var$table=$(this.parents('.profice');
var cost=$table.find('.cost').val();
如果($(this).val()<成本){
如果(确认(“成本大于售价,你确定吗?”){
结果=真;
返回false;
}否则{
结果=假;
返回false;
}
}
});
如果(结果){
返回true;
}
否则{
返回false;
}});
如果用户单击“确认”,将检查是否提交表单。我希望这是有道理的。谢谢
jsfiddle中的HTML:您的浏览器将值解释为字符串(例如:“4.99”),并且对字符串值进行比较,因此它是alpha比较,而不是数字比较。尝试集成parseInt
。另外,我认为您的逻辑在最后一个if语句中被颠倒了,我在运行它时遇到了一个问题,因为没有定义“result”。试试这个:
$(".table").submit(function(event) {
var result = true;
$('.salePrice').each(function() {
var $table = $(this).parents('.profit');
var cost = parseInt($table.find('.cost').val());
var price = parseInt($( this ).val());
if( price < cost ) {
if(confirm("cost is larger than salePrice, are you sure?")){
result = true;
return false;
} else {
result = false;
return false;
}
}
});
if (!result) {
return false;
}
else {
return true;
}
});
$(“.table”).submit(函数(事件){
var结果=真;
$('.salePrice')。每个(函数(){
var$table=$(this.parents('.profice');
var cost=parseInt($table.find('.cost').val());
var price=parseInt($(this.val());
如果(价格<成本){
如果(确认(“成本大于售价,你确定吗?”){
结果=真;
返回false;
}否则{
结果=假;
返回false;
}
}
});
如果(!结果){
返回false;
}
否则{
返回true;
}
});
JSFIDLE:我尝试parseInt
并添加处理程序,然后修复
$(".table").submit(function(event) {
var isOK = true, r = false;
$('.salePrice').each(function() {
var $table = $(this).parents('.profit');
var cost = $table.find('.cost').val();
if (parseInt ($(this).val (), 10) < parseInt (cost, 10)) {
if (!r) r = confirm ("cost is larger than salePrice, are you sure?");
isOK = isOK & r;
}
});
if (isOK) {
return true;
} else {
return false;
}});
$(“.table”).submit(函数(事件){
var isOK=真,r=假;
$('.salePrice')。每个(函数(){
var$table=$(this.parents('.profice');
var cost=$table.find('.cost').val();
if(parseInt($(this).val(),10)
你能显示你的HTML吗?你能在jsbin或JSFIDLE中共享吗?THX!我在jsfiddle.demo中编写它,它缺少jquery依赖项…请看抛出的错误。你能详细说明什么是错的或者如何复制它吗?奇怪。。代码在JSFIDLE中按预期工作,但在我的开发区域中不起作用。我只是想知道,在每个()函数中,无论之前做了什么,在我的示例中结果总是为false?这很奇怪。在代码的其他地方是否定义了一个名为“result”的变量?另外,您是否有一个测试服务器,在那里我们可以看到代码出现故障?