【发布时间】:2016-01-06 10:36:22
【问题描述】:
我正在将 JS 从 iOS 应用程序注入到 Web 应用程序。我控制两者的代码。我正在尝试编写从条形码扫描仪获取输入然后将其放入 Web 表单然后提交表单的 javascript。我使用jQuery.form 插件来制作所有的表单。我使用 ajaxForm。
我想让代码尽可能通用,以防我以后更改前端代码(例如删除 ajaxForm)。我的目标是简单地拥有一组 id,当它与一个 id 匹配时更改输入的值,然后提交表单。这种形式可以是 ajax 或常规形式;但 iOS 应用程序不应该知道实现细节。有没有办法在 vanilla js 中做到这一点?
var scan_ids = ['item','search'];
for(var k=0;k<scan_ids.length;k++)
{
var scan_id = scan_ids[k];
if (document.getElementById(scan_id))
{
document.getElementById(scan_id).value = "[SCAN]";
if (scan_id == "item")
{
/*I don't want to do this as I am bound to ajaxSubmit;
I would rather trigger a form submit and have it use ajaxForm
that is bound to it. If I do .submit() it ignores the ajaxForm */
$('#add_item_form').ajaxSubmit({target: "#register_container", beforeSubmit: salesBeforeSubmit, success:itemScannedSuccess});
$('#add_item_form').submit(); //(WORKS and submits via ajax)
document.getElementById('add_item_form').submit(); //(SUBMITS; DOES NOT AJAX)
}
break;
}
}
【问题讨论】:
-
您的问题到底是什么?您是在问是否可以在不使用库/框架的情况下在 vanilla JS 中提交表单?
-
正确。但我试图在不知道表单或使用 jQuery 的情况下做到这一点。只是一个 id(如果可能的话)。查看 if (scan_id == 'item') 中的最后一个 do 行
-
抱歉,我之前不明白。好的,所以你想用普通的 JS 提交一个表单,但是通过 AJAX?
-
我希望它的工作方式与 jQuery 中的
$('#add_item_form').submit();完全相同,该表单实际上使用的是 ajaxForm,但我不需要知道它就可以工作。 vanilla js有没有办法像那样工作? -
我能问一下你为什么要使用 vanilla JS 来做这件事吗?您实际上将重写一个已经工作的模块。
标签: javascript jquery ajax forms