You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

根据下拉选项修改HTML表单action时提交路径出现NaN.php异常问题

问题排查与解决:表单提交路径变为/NaN.php的原因

你遇到的这个问题其实是两个小错误叠加导致的,咱们一步步拆解:

错误1:获取data-action的对象错了

你的HTML里,data-action属性是定义在<option>标签上的,但你的jQuery代码里却在尝试从<select>元素(也就是$('#r')对应的DOM节点)上获取这个属性——<select>本身根本没有data-action,所以$(this).attr("data-action")会返回undefined。

错误2:多余的加号触发了无效的类型转换

你在$(this).attr("data-action")前面加了个+号,这个操作会尝试把拿到的undefined转换成数字类型,结果自然就是NaN(Not a Number)。浏览器识别到无效的action路径后,就自动补成了你看到的/NaN.php。


修正后的代码

这里给你两种正确的写法,选哪种都可以:

写法1:用attr()获取选中选项的属性

$('#r').change(function() {
  // 先定位到当前选中的option,再取它的data-action
  const targetPath = $(this).find('option:selected').attr('data-action');
  $("form").attr("action", targetPath);
});

写法2:用jQuery的data()方法(更推荐)

jQuery的data()方法可以直接读取data-*系列属性,写法更简洁:

$('#r').change(function() {
  const targetPath = $(this).find('option:selected').data('action');
  $("form").attr("action", targetPath);
});

这样修改后,当你选择不同的选项时,表单的action就会被正确设置为对应option的data-action值,不会再出现NaN的问题了。

内容的提问来源于stack exchange,提问作者user6888062

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:37:21