这不应该那么难。谢谢你的帮助。
我正在尝试通过按钮操作获取父表单的ID(表单:eq#)。
因此,当用户点击按钮时,我需要能够将表单的选择器(eq)添加到按钮的操作中。
这是按钮功能的一部分,它有效:
$('form:eq('+formVal+') input[name='+fieldName+']').val(currentVal + 1);
如果 的
formVal =一个数字。
该数字必须是表单的选择器ID。您使用,我在我的页面上有多个表单,都使用相同的jquery脚本,我试图确保当您单击表单中的按钮时,该操作仅适用于一个表单,而不是页面上的所有表单。
form:eq0触发页面上的第一个表单。 form:eq1触发页面上的第二个表单等。
我需要让这种动态。
我一直在尝试以下代码: 的 formVal = $(本).parent( '形式')ATTR( 'ID');
...获取 formVal ,这是(父)表单的数字选择器编号。
我怎么做到这一点?谢谢你的帮助。完整的脚本在这里:
jQuery(document).ready(function(){
// This button will increment the value
$('.qtyplus').click(function(e){
// Stop acting like a button
e.preventDefault();
// Get the field name
fieldName = $(this).attr('field');
// Get the form name
formVal=$(this).parents("form").find('id');
// Get its current value
var currentVal = parseInt($('form:eq('+formVal+') input[name='+fieldName+']').val());
// If is not undefined
if (!isNaN(currentVal)) {
// Increment
$('form:eq('+formVal+') input[name='+fieldName+']').val(currentVal + 1);
} else {
// Otherwise put a 0 there
$('form:eq('+formVal+') input[name='+fieldName+']').form.id.val(0);
}
});
// This button will decrement the value till 0
$(".qtyminus").click(function(e) {
// Stop acting like a button
e.preventDefault();
// Get the field name
fieldName = $(this).attr('field');
// Get its current value
var currentVal = parseInt($('input[name='+fieldName+']').val());
// If it isn't undefined or its greater than 0
if (!isNaN(currentVal) && currentVal > 0) {
// Decrement one
$('input[name='+fieldName+']').val(currentVal - 1);
} else {
// Otherwise put a 0 there
$('input[name='+fieldName+']').val(0);
}
});
});
答案 0 :(得分:0)
您可以使用closest
查找按钮所在的表单,this.form
也可能会有效,具体取决于它所属的元素类型。
$('.qtyplus').click(function(e){
// Stop acting like a button
e.preventDefault();
// Get the field name
var fieldName = $(this).attr('field');
// Get the form name
var $form=$(this).closest("form");
//var $form=$(this.form);
// Get its current value
var currentVal = parseInt($form.find('input[name='+fieldName+']').val());
// If is not undefined
if (!isNaN(currentVal)) {
// Increment
$form.find('input[name='+fieldName+']').val(currentVal + 1);
} else {
// Otherwise put a 0 there
$form.find('input[name='+fieldName+']').val(0);
}
});
答案 1 :(得分:0)
为什么不这么简单:
jQuery(document).ready(function(){
// This button will increment the value
$('.qtyplus').click(function(e){
// Stop acting like a button
e.preventDefault();
// Get the field name
fieldName = $(this).attr('field');
// Get the form name
var form=$(this).parents("form");
var input = form.find("input[name='"+fieldName+"']'");
// Get its current value
var currentVal = parseInt(input.val());
// If is not undefined
if (!isNaN(currentVal)) {
// Increment
input.val(currentVal + 1);
} else {
// Otherwise put a 0 there
form.attr("id").val(0);
}
});
// This button will decrement the value till 0
$(".qtyminus").click(function(e) {
// Stop acting like a button
e.preventDefault();
// Get the field name
fieldName = $(this).attr('field');
// Get its current value
var currentVal = parseInt($('input[name='+fieldName+']').val());
// If it isn't undefined or its greater than 0
if (!isNaN(currentVal) && currentVal > 0) {
// Decrement one
$('input[name='+fieldName+']').val(currentVal - 1);
} else {
// Otherwise put a 0 there
$('input[name='+fieldName+']').val(0);
}
});
});
由于我们可以访问父表单,我们不应该只访问它以获取id并使用该id再次查找表单。