ID使用dot.notation时获取字段的值

时间:2012-02-10 16:37:16

标签: jquery forms

查看我的修改以获取更多详细信息:

我做了很多乱搞这个无济于事。是时候转向专家......

我的表单元素上的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();
    });

2 个答案:

答案 0 :(得分:0)

您是否在文档准备好后使用调用函数?在文档准备好之前,模糊永远不会被调用,因此模糊可行是有意义的,但如果在渲染元素之前调用函数,则函数不会。

以下是调用您的函数的示例。我强烈建议选择器的格式,因为它是更常见的符号。

HTML:

<input id="primaryEmail.Revisit" value="this.works@hotgmail.comnet" />
<div id="result"></div>

JS:

var getEmailVal = function(){
    return $('input#primaryEmail\\.Revisit').val();
};

$(document).ready(function(){
    $("#result").html(getEmailVal());
});

答案 1 :(得分:-3)

它甚至可以正常工作以获得价值。看看这个小提琴它运作正常。可能是您的代码中存在其他问题。

$(function(){
    $("input[id='id.id']").blur(function(){
        alert($("input[id='id.id']").val());
    });
});

http://jsfiddle.net/E4mz9/268/