问题动态检查密码

时间:2011-04-20 15:16:43

标签: php javascript jquery forms

这是我的场景,我向用户提供了一个测试表,我在循环中从数据库中检索了这个测试表,并为每个测试(表格行)创建了一个表单。所以每个人都有一个提交按钮来执行特定的测试。

我的循环基础:

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功能中完成剩下的工作。

我希望有人可以按照我糟糕的解释,指出我正确的方向。

非常感谢,

1 个答案:

答案 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上下文。