这是我的场景,我向用户提供了一个测试表,我在循环中从数据库中检索了这个测试表,并为每个测试(表格行)创建了一个表单。所以每个人都有一个提交按钮来执行特定的测试。
我的循环基础:
while ($ts = mysql_fetch_assoc($test_info))
{
//PRESENT VALUES $ts['name'] in table within a unique form etc.
}
我正在尝试做的并且失败的是,在单击特定的提交按钮进行测试时,运行一个检查的JS函数;如果测试有附加的密码,如果有,则提供一个弹出表单以输入密码,并在提交该小表格时检查密码是否正确,如果是提交原始测试表格。
我的问题是我无法将附加到该表单的密码值解析为我的javascript。
理想情况下,我想这样做:
<input id='submit' type='button' onclick='JSfunction(test_password)' value='execute test' >
因此,我可以以某种方式将该特定表单中的值解析为javascript函数,而无需实际提交表单。
我相信我知道如何在我的JS功能中完成剩下的工作。
我希望有人可以按照我糟糕的解释,指出我正确的方向。
非常感谢,
答案 0 :(得分:0)
当表单应该有与之关联的密码时,请添加以下内容:
<input type="hidden" name="has_password" value="yes" />
<input type="hidden" name="password" value="" />
然后,在由提交按钮触发的检查中(假设按钮本身是this
上下文):
if ($(this).parent().find(':input:hidden[name=has_password]').val() == 'yes') {
// pop password request
return false;
}
您需要一种方法来存储当前表单的上下文,如果您愿意,我可以建议一些,但您可以将密码填充到隐藏字段中并正常提交。顺便说一句,您可能需要考虑onSubmit
而不是提交按钮的onClick
,因为onSubmit
会捕获脚本执行提交的尝试。如果您这样做,请删除上面的.parent()
部分,因为<form>
元素应该是this
上下文。