我对此问题犹豫不决,因为它有点复杂,但我会尽量让它变得简单。
我有一个包含多个表单字段的页面。
我通过提交脚本提交页面(注意更多内容在此提交脚本中完成,但为了简单起见,我将其删除
function do_file_form_submit(gonext) {
var f = document.getElementById('file_form');
f.gonext.value = gonext;
alert(gonext);
f.submit();
}
请注意,此功能中还包含其他变量。 indxt并不是唯一一个,但在这种情况下,我将其他人留下来以保持简单。
为简单起见,我的HTML看起来像这样:
<form name="file_form" id=file_form action="<?= $this->URL('#', 'UpdateUploadUser', array('mode'=>'upload', 'ID'=>$_GET['ID']));?>" method="post" enctype="multipart/form-data">
<input type="text" name="oneitem">
<button name="submit1" id="submit1" onclick="do_file_form_submit(2);"><img src="<?=$theme;?>/images/12addphoto32px.png">Save Settings Then Upload/Register Another</button>
在“UpdateUploadUser”函数的后端,我们有一个检查器,它检查每个提交的字段以查看它是否为空。如果为空,则返回:
$this->chk = new mVal($event);
if(!$this->chk->Validate()) {
$this->mode = 'error_redisplay';
//$this->mode='Error';
return;
}
如果所有信息都存在,则脚本继续并按预期运行。所以,这是问题所在。
如果有所有信息,我点击按钮,那么一切正常。 file_form提交JS ALERTS的废弃值,脚本运行并按原样更新。
但是,如果缺少某个项目,则验证脚本将运行并“返回”。
一旦页面返回,如果你然后尝试单击提交按钮,页面STILL应该提交它,但file_form提交脚本看起来好像它甚至没有运行,所以passxt值不是通过了。
所以,我试图弄清楚除了这个do_file_form_submit脚本之外,表单的提交是如何发生的。是否有与“回归”有关的事情我不知道?
希望有意义并感谢任何帮助!
克雷格
答案 0 :(得分:0)
查看您的代码
function do_file_form_submit(gonext) {
var f = document.getElementById('file_form');
f.gonext.value = gonext;//f.gonext. i can not find gonext in ur form. just oneitem try something like f.oneitem.value = gonext; i believe that is where the //problem occurs
alert(gonext);
f.submit();
}
简而言之,更换一行:
f.gonext.value = gonext;
与
document.file_form.value = gonext;
然后像
一样提交document.file_form.submit();