此代码打印约15行数据,每行附近有此选择框。我需要为每一行捕获用户选择的值,以将其发送到下一个函数。我收到此错误:未捕获TypeError:对象#没有方法'val'。有没有更好的方法来实现这一目标?
count = 1;
$.each(data, function(index, element) {
$('<div class="hd_field">Payment Format: <select name="Payment_Format" id="Payment' + count + '" class="Payment_Format"><option value="CTX" selected="selected">Company to Company</option><option value="PPD">Company to Person</option></select><div id ="Selected_Format' + count + '"></div></div>').appendTo(newDiv3);
$('select#Payment' + count).change(function() {
alert(this.val());
PaymentFormat = $(this).val();
element.PmtRec.PmtFormat = PaymentFormat;
$('#Selected_Format' + count).text(PaymentFormat);
});
console.log(data);
count = count + 1;
});
答案 0 :(得分:1)
你的错误就出现在这一行:
$('select#Payment'+count).change(function() {
alert(this.val()); //Here
//...
});
问题是在change
事件处理程序中,this
指的是实际的DOM节点,而不是jQuery对象,而DOM节点不会有val
方法。如果要使用val
:
$('select#Payment'+count).change(function() {
alert($(this).val()); //Pass `this` to jQuery
//...
});