【发布时间】:2012-02-10 16:37:16
【问题描述】:
查看我的编辑以获取更多详细信息:
我已经为此做了很多乱七八糟的事情,但无济于事。是时候求助专家了...
我的表单元素上的 ID 使用的是 dot.notation(对此我无能为力)。鉴于这一警告,以下内容非常有效:
$("input[id='primaryEmail.Revisit']").blur(function() {
var emailValue = $(this).val();
alert(emailValue);
});
但是,以下不是:
function getEmailVal() {
var emailValue = $("input[id='primaryEmail.Revisit']").val();
return emailValue;
}
$("#login").click(function() {
var emailValue = getEmailVal();
alert(emailValue);
rebakeCookies();
});
我也试过这些:
function getEmailVal() {
var emailValue = $("input[id='primaryEmail.Revisit']").attr("value");
return emailValue;
}
function getEmailVal() {
var emailValue = $("#primaryEmail\\.Revisit").val();
return emailValue;
}
首先,我如何使用函数获取值,其次,为什么我可以将 val() 与 blur 函数一起使用,而不是与我的函数一起使用?
非常感谢您对此的任何帮助!
我已经解决了——至少就我的目的而言。但是我仍然不确定原始问题的答案是什么?为了解决这个问题,我在输入字段中添加了一个类并引用了该选择器——这很好用:
function getEmailVal() {
var emailValue = $(".primaryEmailRevisit").val();
return emailValue;
}
$("#login").click(function() {
var emailValue = getEmailVal();
alert(emailValue);
rebakeCookies();
});
【问题讨论】:
-
函数真的被调用了吗?添加
console.log或alert进行调试。 -
如果在输入中设置了 id,则您根本不需要调用中的输入部分。将
$("input[id='primaryEmail.Revisit']")更改为$("#primaryEmail.Revisit")。不确定这是否能解决任何问题 -
您已经证明您的选择器有效。这意味着你没有得到你期望的价值。要知道为什么,我们需要知道
getEmailVal是如何/何时被调用的。 -
@Henesnarfel:这更有可能打破它。如果
.不是引号中属性值的一部分,则需要对.进行转义。 -
@VaughnD.Taylor: The code you provided works fine. 不管是什么问题,它都被排除在问题之外。