JQuery Mobile:.val()不起作用

时间:2011-01-17 00:35:53

标签: jquery mobile jquery-mobile

问候,

我有以下jQuery Mobile代码:

<div data-role="content">
  A confirmation code has been sent to your mobile phone via SMS
  <br><br>
  To proceed, please enter the 3-digit confirmation code below:
  <br>
  <input id="verifySMS_code" type="text"  /><br>
  <a id="verifySMS_submit" href="#" data-role="button">Submit</a>
</div>

这是我的javascript:

$(document).ready(function(){
  $("#verifySMS_submit").live("click",function() {
    alert('hi');
    var code=$('input#verifySMS_code').val();
    alert(code);
  });
});

'hi'出现在第一个警告框中,但是''出现在第二个警告框中 - 即完全空白!!!

我尝试过document.getElementById('verifySMS_code')也无济于事。

我甚至尝试过jquery mobile 1.0a3pre

这对我来说是一个非常严重的问题,我不知道如何解决它。

我希望有人可以提供帮助。

非常感谢,

4 个答案:

答案 0 :(得分:5)

  1. 安装萤火虫

  2. 使用

  3. 进行测试

    <input id="verifySMS_code" type="text" value="someoldvalue" />

    $(document).ready(function(){
      $("#verifySMS_submit").bind("submit",function() {
        console.log($('#verifySMS_code'));
        var code=$('#verifySMS_code').val();
        console.log(code);
      });
    });
    

    这就是原因:

    • 输入中的value=将显示 如果这是一个问题得到了 价值或放入你输入的东西 进入input元素(jquery mobile 在输入上构建内容)
    • 您不会生成与“#verifySMS_submit”匹配的新提交按钮 所以你不需要live()那里
    • 点击并使用提交尝试。我想jquery mobile正在推出 文本从输入控件到 在某些特定时刻输入自己 像输入上的blur事件一样,所以它 当你点击某些东西时会发生 否则,不是在那之前
    • console.log($('input#verifySMS_code')); 将在控制台中弹出您的元素。 如果空阵列弹出 - 没有 这样的元素,它是一个选择器 问题。

    测试具有重复ID的输入。

    显示所有ID:$('input').each(function(){console.log($(this).attr('id'));}); 在firebug中运行它,它也将指向DOM,因此您可以在HTML选项卡中单击并找到它们。

答案 1 :(得分:2)

我遇到了同样的问题。不知何故,看起来JQuery Mobile不能很好地处理语法("#someId")

相反,执行("input[id=verifySMS_code]").val()应该有帮助

答案 2 :(得分:2)

如果你有重复的id(在页面加载或使用changePage()等之后),那么尝试访问活动页面对象的子项... 防爆。

var myval = $('form#src #search').val(); // returns incorrect (:first) value of the element   

替换为

var myval = $.mobile.activePage.find('form#src #search').val(); 

无论如何,从我工作过:)

答案 3 :(得分:0)

我在特定页面上遇到了同样的问题。然后我意识到我有一些代码正在调用changePage()到同一页面,从而复制了dom元素及其id。