以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]input元素设置“action”引起的保存问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=164992)

--  作者:zhutangxin
--  发布时间:2021/5/9 23:24:00
--  [求助]input元素设置“action”引起的保存问题
在一张数据表中,客户用给一个字段取名为 “action”,表示“改善措施”,在WeUI生成页面时,直接取字段名作为输入框的id如下图


Form 保存用js的submitAjaxForm方式提交, js函数如下:
保存时出现如下报错:
e.Request.URL.ToString 的值显示成了 http://127.0.0.1/[object HTMLInputElement],没法保存。

经查,得到下面的改善措施,但在js里不知道怎么改

如果你的input元素的id/name属性值被设置为了“action”或“submit”,然后你尝试使用javascript控制提交,那么此时就会变得极其悲剧。现在,如果你想知道form表单数据提交 (通过 form.action提交)的URL,或者你只是想通过写js代码的方式来提交(通过form.submit提交),那么你将会分别得到一个错误的值和直接报错。



--  作者:有点蓝
--  发布时间:2021/5/10 8:28:00
--  
和js没有关系,换一个id名称,不要使用“action”
--  作者:zhutangxin
--  发布时间:2021/5/10 10:12:00
--  
知道不用“action”就没关系了,这需要约束用户在建表时不能用“action"作为表的字段。但这种约束有点麻烦。
生成界面的时候,我用 For Next 循环直接取数据库字段名作为页面元素的id. 如梦能兼容 ”action“ 就更好了。不能兼容的话,那我再想别的办法。

--  作者:有点蓝
--  发布时间:2021/5/10 10:46:00
--  
看了一下,官方表单的提交做了其它处理,不好按1楼的解决方案改。