php - JavaScript: 表单名称.submit();不工作

标签 php javascript

我有以下表格:

<form id="vintro-upload-form" action="{url}?nexturl={nextUrl}" method="post" enctype="multipart/form-data" >
<input name="file" type="file"/>
<input name="token" type="hidden" value=""/>
<input value="Upload Video File" type="button" name="submit" onClick="checkFile()" class="button" />
</form>

和以下 javascript:

<script>
function checkFile(){
 var fileVal = document.forms["vintro-upload-form"].elements['file'].value;
 //RegEx for valid file name and extensions.
 if(fileVal != ""){vintro-upload-form.submit();} 
 else {alert('Please select the Video file.');}
}
</script>

什么有效? fileVal 分配很好。提交不起作用,当我检查调试器时,它说:“vintro 未定义。”

我尝试了什么? 以下示例和代码:

一切都没有成功。这种形式也有一些 jQuery(在另一个 .js 文件中),并且它与带连字符的名称一起正常运行。

为什么提交调用不起作用?

编辑: 我已经尝试使用 document.getElementById('vintro-upload-form').submit(); 按照这个问题的答案中的建议,但是,这仍然失败。我的 (Firefox) 调试器说它不是函数。 Chrome 的调试器解释得更多一点:“未捕获的 TypeError:对象 # 的属性‘提交’不是一个函数”(同时我要去谷歌搜索这个。)

因为我的声望不到 100: 好吧,事实证明,我问错了问题。

这是我找到的答案: Submitting Form Via Javascript, form defined in external PHP file

同时检查已接受的答案。

最佳答案

这个 JavaScript:

document.forms["vintro-upload-form"].elements['file'].value

正在寻找表单标签的 NAME 属性:

document.forms[{form_name}].elements[{field_name}].value

您只有一个 ID。将 ID 的值复制到 NAME 即可。

但是,document.getElementById() 是使用纯 JavaScript 执行此操作的首选现代方法。

但是:您不能有名为“提交”的提交/按钮。

当您这样做并调用 JavaScript submit() 函数时,您会遇到冲突。

关于php - JavaScript: 表单名称.submit();不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10322998/

相关文章:

php - 我如何在 MySQL 中组织单个表中的分层数据组?

javascript - 以交互模式在 qwebview 中打开 plotly

javascript - 基于 slider 值的平滑动画

javascript - 在模块模式中创建 "uniform"变量

javascript - 如何从外部更改 JavaScript 方法中私有(private)变量的值?

javascript - 输入 HTML 表单中的电子邮件地址,然后“提交”按钮将打开包含输入地址的电子邮件客户端

javascript - PHP使用onchange将文件上传到Ajax

javascript - 将数据从 json 传递和使用到 javascript

php - Magento SQL 查询占用所有资源

javascript - 客户端和服务器端编程有什么区别?