4

我正在将页面动态注入到我的 jQuery Mobile 应用程序中。一切正常,除了表单元素。似乎在注入页面上的表单元素上忽略了 data-role="none" 。

<p><input data-role='none' type='radio' name='type' id='type' value='none'/>None</p>
<p><input data-role='none' type='radio' name='type' id='type' value='segments'/>Market Segments</p>
<p>&nbsp; &nbsp; &nbsp <select data-role='none' id='segments'><option value='all'>All</option></select></p>

单选按钮呈现为常规单选按钮,尽管格式有些混乱。选择按钮应该显示为常规下拉列表,但它被呈现为 jQuery Mobile 下拉列表。

以下是注入页面的方式:

var t = results.rows.item(i).body;
var n = results.rows.item(i).name;
$("#"+n).remove();
$("body").append(t);
$("#"+n).appendTo($.mobile.pageContainer);
$("#"+n).attr('data-url',$("#"+n).attr("ID")).trigger('create');

非注入页面上的表单元素工作正常......有什么想法吗?

4

2 回答 2

3

默认情况下,jQuery Mobile 会自动增强表单元素,如果你想告诉 JQM忽略它们,你可以将data-role="none"属性添加到容器中,但是你还需要设置$.mobile.ignoreContentEnabled = true. 这样做的原因是因为默认情况下 JQM 不检查data-role="none"属性(以免每次都不必要地执行检查)。

请记住,您需要ignoreContentEnabledmobileinit event中设置。

于 2012-10-25T18:56:22.010 回答
0

您应该检查是否手动初始化这些表单控件。由于您正在注入这些控件,因此您可能还会调用 selectmenu('refresh') 方法。只需删除这些电话,一切都应该正常。

于 2012-12-28T03:20:17.183 回答