通过 jQuery 更改操作后提交到旧操作的表单
Form submitting to old action after changing the action via jQuery
这似乎应该很简单,但它不起作用。 我正在做的是获取旧操作,在末尾添加一个 ID,并为此设置表单操作。 代码如下:
var action = $('#update-schedule-form').attr('action');
$('#update-schedule-form').attr('action', action + '/1');
我可以看到表单的操作在FireBug和Chrome的检查器中发生了变化。但是,当我单击提交按钮时,它仍然将其发送到原始操作。例如,它在代码中显示"/controller/action/1",但提交到"/controller/action"。 知道这里发生了什么吗?
更新
事实证明,我正在使用的框架 Yii 存储了它的 ajax 验证例程的原始表单操作地址。 我没有看到在Firebug中提交表单,我看到验证试图在提交之前验证表单。我不知道 Yii 将它使用的 URL 存储在哪里或如何更改它(应该使用表单操作,但显然不是),所以我只是修改了我的控制器并使 ID 参数可选。现在,验证运行愉快,表单正确提交。
也许你应该尝试使用prop
而不是attr
。
var action = $('#update-schedule-form').prop('action');
$('#update-schedule-form').prop('action', action + '/1');
检查这个答案的 .prop() 与 .attr()
您是通过jQuery还是使用提交html按钮提交表单?尝试其他提交方式。
此外,请尝试以这种方式更新操作。
var action = jQuery('#update-schedule-form').get(0).getAttribute("action");
jQuery('#update-schedule-form').get(0).setAttribute('action', action + '/1');
编辑:这可能是你的代码所在的位置,但如果没有错误,很难说,这可能不是问题所在。
相关文章:
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 如何根据所选选项值重定向表单操作
- 从输入时提交到jQuery,无需提交按钮,无需表单操作
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- Rails-带有单选按钮的表单,带有启用/禁用附加元素的javascript操作
- jQuery表单验证(如果==“执行此操作”)仅适用于第一次输入
- 如何根据所选的下拉值更改表单值操作
- 当我的表单中已经有一个操作时添加JavaScript
- 表单操作值未从attr()函数中获取
- 表单在由ajax部分Ruby创建时有错误的操作
- JavaScript 表单操作更改RC方法发布文本输入提交
- 具有两个提交按钮和两个不同操作的 HTML 表单
- 如何在开机自检前操作表单文件输入
- 在提交之前操作表单值而不向用户显示
- 如何在支柱中使用操作表单设置文本框值
- 当一页上有超过24个表单时,操作表单数据
- 如何在jQuery提交处理程序中操作表单元素
- 更改弹簧表单上的操作:表单提交
- 如何将 PHP 变量加载到操作表单帖子中