3

问候,

我有以下 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

4 回答 4

5
  1. 安装萤火虫

  2. 测试它

<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=中的 将显示获取值或将输入的内容放入输入元素是否存在问题(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 选项卡中找到它们。

于 2011-01-17T08:18:18.170 回答
2

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

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

于 2011-09-28T14:43:59.093 回答
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(); 

无论如何,从我那里工作:)

于 2013-08-13T13:31:10.797 回答
0

I had the same problem on a particular page. Then I realized I had some code that was calling a changePage() to the same page, thereby duplicating the dom element and its id.

于 2013-07-30T15:42:32.290 回答