我们可以在禁用渲染的情况下运行javascript吗? 上下文
我正在开发一个非常复杂的web站点框架,其中包括大量客户端表单操作,动态外观可用于动态切换(页面加载和卸载时运行大量代码) 我需要能够动态更改各种类型的许多输入(或只读,如果可用)的禁用状态 问题 许多HTML表单输入类型的核心设计都搞砸了(至少非常不一致),当与运行asp.net的服务器结合使用时,它会变得更加奇怪 更具体地说,正如你们中的一些人所知道的,对任何输入执行disabled=“true”都会终止回发,因为在提交表单时它实际上不会被发布 可能的解决办法 在页面卸载中,我可以很容易地删除使用它的每个控件的禁用状态。。。这解决了“数据完整性”问题 但有一个大警告: 卸载终止时,整个显示屏闪烁(因为所有控件立即返回到启用状态),然后在服务器应答时,页面处于低于正常状态 杀手问题 onbeforeunload或unload事件是否有一种运行方式,使它们对DOM所做的任何操作都不会在屏幕上刷新 或者,有没有一种方法可以让视觉效果显示控件,就好像它被禁用了一样,但它仍然实际发布到服务器上 或者有人有什么想法可以推动我找到解决方案吗 提前谢谢 [编辑]我们可以在禁用渲染的情况下运行javascript吗? 上下文,javascript,asp.net,javascript-events,Javascript,Asp.net,Javascript Events,我正在开发一个非常复杂的web站点框架,其中包括大量客户端表单操作,动态外观可用于动态切换(页面加载和卸载时运行大量代码) 我需要能够动态更改各种类型的许多输入(或只读,如果可用)的禁用状态 问题 许多HTML表单输入类型的核心设计都搞砸了(至少非常不一致),当与运行asp.net的服务器结合使用时,它会变得更加奇怪 更具体地说,正如你们中的一些人所知道的,对任何输入执行disabled=“true”都会终止回发,因为在提交表单时它实际上不会被发布 可能的解决办法 在页面卸载中,我可以很容易地删
我有机会只需要支持chrome,因此这可能会为你们中的一些chrome天才打开解决方案的渠道。不要在卸载时删除禁用,在提交表单时执行,而且它不是
禁用=“true”
不要在卸载时删除禁用,在提交表单时执行,而且它在表单发布时不是disabled=“true”
,您还可以有第二个隐藏表单(隐藏显示:无),它可以出现在原始页面中,也可以通过JS动态创建。第二个表单中的所有项目均未禁用。提交后,将值从原始表单复制到第二个表单,然后提交第二个表单。您从不修改任何可见的内容,所以屏幕上不会有任何更改。您可以自由使用“禁用演示文稿中的所有内容”,但在提交表单的第二份副本时,仍然可以将所有值发送到服务器。在表单发布时,您还可以拥有第二个隐藏表单(隐藏显示:无),它可以出现在原始页面中,也可以通过JS动态创建。第二个表单中的所有项目均未禁用。提交后,将值从原始表单复制到第二个表单,然后提交第二个表单。您从不修改任何可见的内容,所以屏幕上不会有任何更改。您可以在演示文稿中自由使用disable all,但在提交表单的第二个副本时,仍然可以将所有值发送到服务器。或者(类似的)有一个表单,其中没有提交任何可见元素,但它们都有相应的隐藏输入。啊,所以我只需在原始表单中添加一个onSubmit处理程序,复制表格并从那里提交新的表格(注意从提交人处适当返回,以免重复提交)。。。整洁的或者(有点类似)有一个表单,其中没有提交任何可见元素,但它们都有相应的隐藏输入。啊,所以我只需在原始表单中添加一个onSubmit处理程序,复制表单并从那里提交新表单(注意从onSubmit中适当返回,这样我就不会得到双重提交)。。。整洁的它在XHTML中被禁用=“true;”-)实际上,似乎任何值都可以工作,尽管FF似乎表示应该禁用它=“在XHTML中禁用它=”true;-)实际上,似乎任何值都可以工作,尽管FF似乎表示应该禁用它=“”