在使用 jQuery 回发之前从动态表单字段中获取值
Get value from dynamic form field before postback with jQuery
我设置了一个表单,其中包含仅在用户需要时才添加的动态字段。
我需要能够在 jquery 中回发之前验证字段(如果它们存在)。这些字段是整数,我真正想做的是添加动态字段的总和以确保它们大于 x 数字。
但据我所知,我无法获取该字段的值,因为它还不在 DOM 中。
我创建了一个 JSFiddle 来演示这个问题。我想在 onblur 事件上添加值,不幸的是,它不能通过单击主提交按钮来实现。
下面是部分代码
$(document).on('blur', '.rent-percent', function () {
var id = this.id;
console.log(this);
var value = $('#' + id).val()
$('#total').append(value * count);
});
试试这个,确保你没有使用过时的 jQuery 版本:
$(document).on('blur', '.rent-percent', function () {
if(!$.isNumeric($(this).val())){
$(this).val('');
return alert('Not a Number!');
}
var c = 0;
$('.rent-percent').each(function(){
c += parseInt($(this).val());
});
$('#total').html('<h3>Total</h3>'+c);
});
部分问题是您生成的 ID 值中包含方括号字符。 HTML4 规范只允许字母、数字、连字符和下划线。以我的经验,jQuery 的 ID 不符合该要求。尝试修复 id 值并查看是否允许您查看字段的值。它们在 DOM 中,因为它们是页面的一部分。
我设置了一个表单,其中包含仅在用户需要时才添加的动态字段。
我需要能够在 jquery 中回发之前验证字段(如果它们存在)。这些字段是整数,我真正想做的是添加动态字段的总和以确保它们大于 x 数字。
但据我所知,我无法获取该字段的值,因为它还不在 DOM 中。
我创建了一个 JSFiddle 来演示这个问题。我想在 onblur 事件上添加值,不幸的是,它不能通过单击主提交按钮来实现。
下面是部分代码
$(document).on('blur', '.rent-percent', function () {
var id = this.id;
console.log(this);
var value = $('#' + id).val()
$('#total').append(value * count);
});
试试这个,确保你没有使用过时的 jQuery 版本:
$(document).on('blur', '.rent-percent', function () {
if(!$.isNumeric($(this).val())){
$(this).val('');
return alert('Not a Number!');
}
var c = 0;
$('.rent-percent').each(function(){
c += parseInt($(this).val());
});
$('#total').html('<h3>Total</h3>'+c);
});
部分问题是您生成的 ID 值中包含方括号字符。 HTML4 规范只允许字母、数字、连字符和下划线。以我的经验,jQuery 的 ID 不符合该要求。尝试修复 id 值并查看是否允许您查看字段的值。它们在 DOM 中,因为它们是页面的一部分。