Javascript knockout.js是否被禁用,或者什么可以';允许'&书信电报;a>;点击禁用元素?
我正在开发一个使用Jquery移动UI的页面,knockout.js组合。如果ViewModel无效,则应该有一种验证机制来禁用JQuery移动分页。我已经检查过,敲除机制工作正常,当模型从无效状态切换到有效状态时,它正在删除手动添加的Javascript knockout.js是否被禁用,或者什么可以';允许'&书信电报;a>;点击禁用元素?,javascript,jquery,jquery-mobile,data-binding,knockout.js,Javascript,Jquery,Jquery Mobile,Data Binding,Knockout.js,我正在开发一个使用Jquery移动UI的页面,knockout.js组合。如果ViewModel无效,则应该有一种验证机制来禁用JQuery移动分页。我已经检查过,敲除机制工作正常,当模型从无效状态切换到有效状态时,它正在删除手动添加的disabled=“disabled”属性。问题是我能够单击禁用的分页控件(invoke knockout.js单击binding javascript函数调用)。我甚至向所有子控件添加了disabled=“disabled”。 是knockout.js忽略了di
disabled=“disabled”
属性。问题是我能够单击禁用的分页控件(invoke knockout.js单击binding javascript函数调用)。我甚至向所有子控件添加了disabled=“disabled”
。是knockout.js忽略了
disabled=“disabled”
,还是有不同的解释?
Jquery移动导航控件的HTLM,在下面禁用时可以单击该控件
<a data-role="button" data-mini="true" data-icon="arrow-r" data-iconpos="notext" data-inline="true" data-transition="none" data-bind="click: function() { onTheMove.loadPagingData(bcAccountProductAudit, 'GoToNextSet', true); }, enable : PageObj.isValid()" href="#" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="c" title="" class="ui-btn ui-btn-inline ui-shadow ui-btn-corner-all ui-mini ui-btn-icon-notext ui-btn-up-c" disabled="disabled">
<span class="ui-btn-inner ui-btn-corner-all" disabled="disabled">
<span class="ui-btn-text" disabled="disabled"></span>
<span class="ui-icon ui-icon-arrow-r ui-icon-shadow" disabled="disabled"> </span>
</span>
</a>
IsValid false和控件已禁用
函数在单击时被调用
调用起源的堆栈跟踪
Knockout本身不做任何检查,以查看某个元素是否被禁用,-
click
绑定只会侦听浏览器对该元素的click事件
disabled
不是全局属性,因此并非所有元素都支持它。如果您的
元素设置了禁用的属性,并且您单击了该按钮,那么浏览器将不会生成Knockout可以侦听的任何单击事件。但是,
标记不支持禁用
属性,因此无论您是否设置该属性,浏览器都将生成一个单击事件
解决此问题的最快方法是将
元素替换为支持disabled
属性的元素(例如
),或者手动检查单击处理程序中是否禁用了该元素。请注意,虽然Knockout正确删除了disabled
属性,当启用
条件对于不支持它的元素(如
)计算为false时,它将无法再次添加它,因此您可能需要检查实际条件。敲除本身不做任何检查,以查看某个元素是否被禁用。单击
绑定即可侦听浏览器对该元素的单击事件
disabled
不是全局属性,因此并非所有元素都支持它。如果您的
元素设置了禁用的属性,并且您单击了该按钮,那么浏览器将不会生成Knockout可以侦听的任何单击事件。但是,
标记不支持禁用
属性,因此无论您是否设置该属性,浏览器都将生成一个单击事件
解决此问题的最快方法是将
元素替换为支持disabled
属性的元素(例如
),或者手动检查单击处理程序中是否禁用了该元素。请注意,虽然Knockout正确删除了disabled
属性,当启用
条件对于不支持它的元素(如
)计算为false时,它将无法再次添加它,因此您可能需要检查实际条件。敲除本身不做任何检查,以查看某个元素是否被禁用。单击
绑定即可侦听浏览器对该元素的单击事件
disabled
不是全局属性,因此并非所有元素都支持它。如果您的
元素设置了禁用的属性,并且您单击了该按钮,那么浏览器将不会生成Knockout可以侦听的任何单击事件。但是,
标记不支持禁用
属性,因此无论您是否设置该属性,浏览器都将生成一个单击事件
解决此问题的最快方法是将
元素替换为支持disabled
属性的元素(例如
),或者手动检查单击处理程序中是否禁用了该元素。请注意,虽然Knockout正确删除了disabled
属性,当启用
条件对于不支持它的元素(如
)计算为false时,它将无法再次添加它,因此您可能需要检查实际条件。敲除本身不做任何检查,以查看某个元素是否被禁用。单击
绑定即可侦听浏览器对该元素的单击事件
disabled
不是全局属性,因此并非所有元素都支持它。如果您的
元素设置了禁用的属性,并且您单击了该按钮,那么浏览器将不会生成Knockout可以侦听的任何单击事件。但是,
标记不支持禁用
属性,因此无论您是否设置该属性,浏览器都将生成一个单击事件
解决此问题的最快方法是将
元素替换为支持disabled
属性的元素(例如
),或者手动检查单击处理程序中是否禁用了该元素。请注意,虽然Knockout正确地删除了disabled
属性,但如果enable
条件对于不支持它的元素(如
)计算为false,它将无法再次添加该属性,因此您可能需要检查实际条件,这是允许禁用的。为了完整性,这是允许禁用的。为了完整性,这是允许禁用的