js提交表单错误:document.form.submit() is not a function

js提交表单错误:document.form.submit() is not a function

在最近的开发过程中,我遇到了一个很奇怪的问题,就是在利用Javascript控制表单提交时,浏览器提示 document.genForm.submit is not a function。genForm是表单<form>的name,并且使用同样函数的另一个表单却执行正常,查找了半天也没有发现两个有什么 不同,后来在网上搜索了一番,结果找到了原因。

当表单<form>…</form>中含有name=”submit”时,提交时就会有冲突,这个错误常见于按钮上,如:

在Javascript做submit()的时候就会出现冲突,这时将name=”submit”改成别的比如login之类的就可以了,反正submit在这个情况下是个保留关键字。

在表单的输入框中使用了<input name=”submit” type=”text” />,这样也是不行的。


  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
使用`form.submit()`方法无法直接获取文件是否下载成功的信息。这是因为该方法是异步执行的,而且浏览器对于通过表单提交下载文件的过程,不会提供直接的回调或事件来指示下载是否成功。 一种解决方案是使用`iframe`元素来模拟表单提交,并利用`iframe`的加载事件来判断文件是否下载成功。您可以按照以下步骤进行操作: 1. 创建一个隐藏的`iframe`元素,并设置其`onload`事件处理函数。 2. 将`iframe`元素添加到文档中。 3. 创建一个表单元素,并设置其相关属性(例如,`action`、`method`等)。 4. 将表单元素添加到文档中。 5. 使用表单的`submit()`方法来触发文件的下载。 6. 在`iframe`的`onload`事件处理函数中,判断文件是否下载成功。 以下是示例代码: ```javascript var exportExcel = function(url, data) { var iframe = document.createElement('iframe'); iframe.style.display = 'none'; iframe.onload = function() { console.log('文件下载完成'); // 在这里执行文件下载成功后的操作 }; document.body.appendChild(iframe); var form = document.createElement('form'); form.method = 'post'; form.action = url; var input = document.createElement('input'); input.type = 'hidden'; input.name = 'paramstr'; input.value = JSON.stringify(data); form.appendChild(input); var input2 = document.createElement('input'); input2.type = 'hidden'; input2.name = 'total'; input2.value = $("#searchfm-result").html(); form.appendChild(input2); document.body.appendChild(form); form.submit(); // 清理表单和iframe form.remove(); iframe.remove(); }; ``` 在上述示例中,当文件下载完成时,会在控制台输出"文件下载完成"的消息,并可以在`iframe`的`onload`事件处理函数中执行其他操作。请根据您的需求进行相应的修改和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值