JQuery Mobile表单提交无效

时间:2011-04-24 11:36:41

标签: jquery jquery-mobile

我在这里看到其他类似的问题已经找到了解决方案,但在尝试之后,没有一个能解决我的问题。

我正在使用JQuery Mobile提交表单。

提交后,我收到一条加载消息,没有别的。

有没有人有任何想法?

以下是相关代码:

头脑中的

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Page Title</title> 
    <link rel="stylesheet"  href="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.css" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>


    <script>
  //reset type=date inputs to text
  $( document ).bind( "mobileinit", function(){
    $.mobile.page.prototype.options.degradeInputs.date = true;
  });   
</script>


</head> 

然后是表格:

<form name="form1" method="post" rel="external" action="checklogin.php">


<div class="ui-field-contain ui-body ui-br" data-role="fieldcontain">
 <label class="ui-input-text" for="name">Username:</label>
<input name="myusername" id="myusername" value="" type="text">
</div>

<div class="ui-field-contain ui-body ui-br" data-role="fieldcontain">
 <label class="ui-input-text" for="name">Username:</label>
<input name="mypassword" id="mypassword" value="" type="text">
</div>

<fieldset class="ui-grid-a">
<div><input value="" name="" type="hidden"><button aria-disabled="false" class="ui-btn-hidden" type="submit" data-theme="a">Login</button></div></div>
</fieldset>



</form>

注意:我在操作页面上添加了一个Echo,但它永远不会到达那里。

有什么想法吗?

由于

4 个答案:

答案 0 :(得分:16)

jquery mobile使用ajax传递表单,只需关闭它就可以了,

<form action="form1" method="post" data-ajax="false">

答案 1 :(得分:5)

您的“checklogin.php”文件是否包含<div data-role="page">个标记?如果你希望它加载“checklogin.php”,那么该php文件应该有一些jQuery mobile识别的HTML。然后它会将其拉入您的页面。如果您检查网络对“checklogin.php”的POST请求的响应,您可能会在那里看到您的回显,但它不会显示在页面上。试试吧。

答案 2 :(得分:3)

这是导致提交点击无法在jQuery Mobile中触发的一种方法:只需将CSS边距添加到您的

发生了什么:

jQM的可见包装元素复制应用于实际输入元素的所有类,应用了jQM和app css样式。如果给按钮一个顶部或左边距,它会使实际输入元素的位置在包装元素内“移位”,这样可见元素顶部和左侧的点击就会错过实际的提交元素!一种极好的方式来产生看起来像是在该领域随机失败的东西。

您可以在附带的调试屏幕截图中看到这一点,并突出显示实际的提交元素几何。

修复是:

    $("#createButton").parent().click(function() {$("#createButton").click()});

这样点击包装元素并将其转发给实际的提交元素。

jQM显然是一个糟糕的设计。如果他们要将装饰“移动”到包装元素,他们需要将它们从包裹元素中移除。有很多关于jQM提交没有在网上开火的投诉,我怀疑很多都是这个问题。

答案 3 :(得分:3)

使用Javascript提交而不是Jquery提交,因为这是jquery mobile的一个问题。

使用

<强>的document.getElementById(&#34; formID&#34)。提交();

而不是

$(&#34;#formID&#34)。提交();