jQuery Mobile忽略表单元素上的data-role =“none”

时间:2012-10-25 16:43:26

标签: jquery forms mobile jquery-mobile

我正在动态地将页面注入我的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');

非注入页面上的表单元素工作正常......任何想法?

2 个答案:

答案 0 :(得分:3)

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

请注意,您需要在mobileinit ignoreContentEnabled中设置event

答案 1 :(得分:0)

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