2011-04-20 83 views
0

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

基础知识:

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函数,而无需实际提交表单。

我相信我知道如何在我的JSfunction中完成剩下的工作。

我希望有人能跟随我可怜的解释,并指出我在正确的方向。

非常感谢,

回答

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; 
} 

你需要一种方法来保存当前表单的背景下,我可以建议一些,如果你喜欢,但你CA然后将密码填入隐藏字段中并按正常提交。顺便说一句,你可能想考虑onSubmit而不是提交按钮的onClick,因为onSubmit会捕获脚本尝试执行提交。如果你这样做,只需删除上面的.parent()部分,因为<form>元素应该是this上下文。

+0

我可以以类似的方式访问表单的值吗?所以当我验证'has_password'是'是'时,我可以用表单中的测试名称从我的数据库中获取实际密码。如果这是有道理的:S – buymypies 2011-04-20 15:33:45

+0

我不确定你在说什么。你的意思是你想在客户端做比较吗?这不是一个好主意。我假设你会弹出一个要求输入密码的通用shadowbox,然后填充隐藏的密码字段,然后在相关表单上调用'submit()'方法。你到底想要做什么? – Dereleased 2011-04-20 15:43:45