首页 > 解决方案 > 以编程方式更改 CSM 页面中提交输入的 onclick

问题描述

我正在使用无法直接编辑的 CMS,因此我需要通过页面上注入的 JS 来实现结果。

我的输入提交按钮是:

<input type="submit" name="ctl00$plcBody$BookingFormGrid$ctl03" value="NEXT" onclick="$('form').attr('action', 'RoomTypeSelection.aspx?bfid=126b48d6-e3b9-4e57-8be6-067da3425467&bfpid=37a70010-9228-4cd8-aeaf-23efd0ca4b84&arr=2019-03-13&amp;nts=4&a=1&c=0');" class="btn btn-primary bnow">

我在 CMS 页面中有多个(并且数量不等),我需要向onclickurl 添加一个参数。

所以:

onclick="$('form').attr('action', 'RoomTypeSelection.aspx?bfid=126b48d6-e3b9-4e57-8be6-067da3425467&bfpid=37a70010-9228-4cd8-aeaf-23efd0ca4b84&arr=2019-03-13&nts=4&a=1&c=0'

变为(使用 param &pc=SAVENOW):

onclick="$('form').attr('action', 'RoomTypeSelection.aspx?bfid=126b48d6-e3b9-4e57-8be6-067da3425467&bfpid=37a70010-9228-4cd8-aeaf-23efd0ca4b84&arr=2019-03-13&nts=4&a=1&c=0&pc=SAVENOW'

如何更改onclick操作内容?

标签: javascriptjquery

解决方案


正如您所写,您无法更改发出的 html 代码,这就是您想要从 JS 实现目标的原因。我在评论中的意思是这样的:

<script>
$(() => {
  $('form').on('submit', () => { $(this).attr('action') += '&pc=SAVENOW' })
})
</script>

但是,如果您必须区分表单,而不是简单地将这个参数添加到所有表单,您的逻辑可能会变得更加复杂。


推荐阅读