为什么 jQuery 禁用的元素在 jQuery 移动设备中看起来可以触摸?
Why does a jQuery disabled element look touchable in jQuery mobile?
我想以编程方式 disable/enable 一个 html select 元素。我的项目正在使用 jQuery 移动版 1.4.5 和 jQuery 2.1.4.
要禁用 jQuery 中的元素,我这样做:
$('#filter_refn').prop('disabled', true);
渲染后的结果:
<select name="ref_id" id="filter_refn" data-mini="true" disabled="">
<option value="" selected="">Referenznummer auswählen</option>
</select>
这“不知何故有效。由于用户不能select任何东西,但是该框仍然处于活动状态并且不会像直接在html中那样被禁用。
我注意到 jQuery 禁用的 属性 不包含“true”
jQuery 手机中的示例:
原生 html:
如何以类似于 HTML 的方式禁用该元素?
您的 HTML 文档类型是如何声明的?在 XHTML 中,"disabled" 属性必须有一个值,而在 HTML 中,它不需要有一个值。此外,它可能与您的浏览器有关,因此,如果您能提供有关 DOCTYPE 声明和用于测试页面的浏览器的更多信息,将会更有帮助。
对于我最新版本的桌面Chrome浏览器
<select name="ref_id" id="filter_refn" data-mini="true" disabled>
<select name="ref_id" id="filter_refn" data-mini="true" disabled="">
<select name="ref_id" id="filter_refn" data-mini="true" disabled="disabled">
当文档类型为 html5 时,所有结果都相同,这应该是正确的大小写。
但是,如果您的浏览器或文档类型要求 "disabled" 属性具有一个值,您可以使用 jQuery "attr" 函数,以某种方式
$('#filter_refn').prop('disabled', true);
产生
<select name="ref_id" id="filter_refn" data-mini="true" disabled>
同时
$('#filter_refn').attr('disabled', true);
生产
<select name="ref_id" id="filter_refn" data-mini="true" disabled="disabled">
看看是否符合您的要求?
您需要使用 jquery 手机 API 提供的功能来更改其组件的状态。
$( ".selector" ).selectmenu( "disable" );
这些元素的样式由 css
规则完成,那些元素使用 [disabled]
选择器。
但是,如果您对 none 用户输入元素执行 $('#filter_refn').prop('disabled', true);
,则只有 属性 disabled
会发生变化,而不会更改属性。对于 select
、button
、input
等元素,... $('#filter_refn').prop('disabled', true);
将同时更改 属性 和属性。
编写 $('#filter_refn').prop('disabled', true).attr('disabled', true);
肯定也会改变视觉外观,但您仍然应该使用 API.
提供的功能
我想以编程方式 disable/enable 一个 html select 元素。我的项目正在使用 jQuery 移动版 1.4.5 和 jQuery 2.1.4.
要禁用 jQuery 中的元素,我这样做:
$('#filter_refn').prop('disabled', true);
渲染后的结果:
<select name="ref_id" id="filter_refn" data-mini="true" disabled="">
<option value="" selected="">Referenznummer auswählen</option>
</select>
这“不知何故有效。由于用户不能select任何东西,但是该框仍然处于活动状态并且不会像直接在html中那样被禁用。
我注意到 jQuery 禁用的 属性 不包含“true”
jQuery 手机中的示例:
原生 html:
如何以类似于 HTML 的方式禁用该元素?
您的 HTML 文档类型是如何声明的?在 XHTML 中,"disabled" 属性必须有一个值,而在 HTML 中,它不需要有一个值。此外,它可能与您的浏览器有关,因此,如果您能提供有关 DOCTYPE 声明和用于测试页面的浏览器的更多信息,将会更有帮助。
对于我最新版本的桌面Chrome浏览器
<select name="ref_id" id="filter_refn" data-mini="true" disabled>
<select name="ref_id" id="filter_refn" data-mini="true" disabled="">
<select name="ref_id" id="filter_refn" data-mini="true" disabled="disabled">
当文档类型为 html5 时,所有结果都相同,这应该是正确的大小写。
但是,如果您的浏览器或文档类型要求 "disabled" 属性具有一个值,您可以使用 jQuery "attr" 函数,以某种方式
$('#filter_refn').prop('disabled', true);
产生
<select name="ref_id" id="filter_refn" data-mini="true" disabled>
同时
$('#filter_refn').attr('disabled', true);
生产
<select name="ref_id" id="filter_refn" data-mini="true" disabled="disabled">
看看是否符合您的要求?
您需要使用 jquery 手机 API 提供的功能来更改其组件的状态。
$( ".selector" ).selectmenu( "disable" );
这些元素的样式由 css
规则完成,那些元素使用 [disabled]
选择器。
但是,如果您对 none 用户输入元素执行 $('#filter_refn').prop('disabled', true);
,则只有 属性 disabled
会发生变化,而不会更改属性。对于 select
、button
、input
等元素,... $('#filter_refn').prop('disabled', true);
将同时更改 属性 和属性。
编写 $('#filter_refn').prop('disabled', true).attr('disabled', true);
肯定也会改变视觉外观,但您仍然应该使用 API.