我正在动态地将页面注入我的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>   <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');
非注入页面上的表单元素工作正常......任何想法?
答案 0 :(得分:3)
默认情况下,jQuery Mobile会自动增强表单元素,如果你想告诉JQM ignore他们你可以将data-role="none"
属性添加到容器中,但是你也需要设置$.mobile.ignoreContentEnabled = true
。这是因为默认情况下,JQM不会检查data-role="none"
属性(以便不必每次都进行检查)。
请注意,您需要在mobileinit ignoreContentEnabled
中设置event
。
答案 1 :(得分:0)
您应该检查是否手动初始化这些表单控件。由于您正在注入这些控件,因此您也可以调用selectmenu('refresh')方法。只需删除这些调用,一切都应该正常。