我正在尝试从下面粘贴的HTML中获取Contact_LastName
的值,但是我收到以下错误
Uncaught Error: Syntax error, unrecognized expression: div #u1@g.com
Javascript:
$('.rdContact').off("click").on("click", function (e) {
e.preventDefault();
$(this).next("div").toggle();
$('.btn-success').off('click').on('click', function (e) {
e.preventDefault();
var divId = $(this).closest('div').parent().attr('id');
var lnameval = $("div #"+ divId).closest('#Contact_LastName').val();
alert(lnameval);
});
});
HTML:
<input type="radio" class="rdContact" name="ContactGroup" value="u1@g.com" style="">
<div class="row" id="u1g.com" style="display: none;">
<div class="col-md-6">
<div class="form-group">
<div class="col-md-3 control-label">
<label>Last Name:</label>
</div>
<div class="col-md-3">
<input class="form-control pr_input defaultText quiet reqrd" id="Contact_LastName" maxlength="50" name="ContactLastName" type="text" value="">
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<div class="col-md-3 control-label">
<label>First Name:</label>
</div>
<div class="col-md-3">
<input class="form-control defaultText quiet reqrd" id="Contact_FirstName" maxlength="50" name="ContactFirstName" type="text" value="">
</div>
</div>
</div>
<div class="modal-footer">
<input type="button" value="Add Contact" id="btnSaveContact" class="btn btn-success">
<input type="button" value="Cancel" id="btnCancelContact" class="btn btn-default">
</div>
</div>
答案 0 :(得分:1)
这种情况正在发生,因为u1@g.com
不是元素ID的有效值,因此jQuery无法解析您的选择器。
来自HTML4 spec:
ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。
解决方案是为您的ID使用有效值。
Re:您的评论如下,您收到undefined
,因为您使用了closest()
错误(请点击该链接查看closest()
实际执行的内容)。
我愿意打赌您的页面中有多个位置id
Contact_LastName
,这是一个很大的问题,因为ID必须是唯一的。
我也非常好奇为什么你选择row
div并检索它的ID,这样你就可以使用该ID在下一行中重新选择它。
取代您当前的方法,摆脱重复的ID并使用它:
$('.btn-success').off('click').on('click', function (e) {
e.preventDefault();
var row = $(this).closest(".row");
var lnameval = row.find("input[name='ContactLastName']").val();
alert(lnameval);
});
答案 1 :(得分:1)
错误来自Sizzle,jQuery使用它来解析元素选择器。
您的div有一个奇怪的ID:u1@g.com
。尝试使用不带@
的ID。