2012-08-31 30 views
0

我根本不了解JavaScript。我已经使用Jotform创建了一个基于Web的表单,其中附带了大量条件,因为我不知道如何做到这一点。更改了很多它到PHP,所以我可以访问我的分贝。无论如何。这是一张员工时间卡的形式。我们有几个领域需要总时间。第一个领域是总工时。然后进入job1,job2,job3和job4。 在job1中,表示该工作总时数,job2总时数,工作3等。 我正在寻找一个脚本,如果job1,2,3,4 & 5不等于他们原来的小时输入,然后显示错误。在提交前需要一个单元格以等于其他单元格

Total Hours Worked = 8 
Job1 Hours =3 
Job2 Hours =5 
JOb3 Hours =1 
DISPLAY ERROR 

Total Hours Worked = 8 
Job1 Hours =1 
Job2 Hours =4 
Job3 Hours =2 
Job4 Hours =1 
ALLOW FORM TO SUBMIT 

这是一件相当复杂的事情。

回答

1

我懒散地硬编码的工作数量,但这是你想要的。

<script type="text/javascript"> 
function checkHours() { 
totalHours = Number(form.total.value); 
realTotal = 0; 
for (x = 1; x <= 4 /* hard-coded job count */; x++) 
    realTotal += Number(eval("form.job" + x + ".value")); 
if (totalHours != realTotal) { 
     alert("Total hours does not match cumulative job hours"); 
     return false;  
} 
} 
</script> 
<form name="form" method="post" onsubmit="return checkHours()"> 
<table> 
<tr> 
    <td>Total Hours</td><td><input type="text" name="total"/></td> 
</tr>  
<tr> 
    <td>Job 1</td><td><input type="text" name="job1"/></td> 
</tr> 
<tr> 
    <td>Job 2</td><td><input type="text" name="job2"/></td> 
</tr> 
<tr> 
    <td>Job 3</td><td><input type="text" name="job3"/></td> 
</tr> 
<tr> 
    <td>Job 4</td><td><input type="text" name="job4"/></td> 
</tr>  
</table> 
<input type="submit" value="Submit"> 
</form> 

如果这是万一错误:我的解决方案就足够了。如果是因为高度不值得信任的员工会故意尝试假冒几小时:泡泡是正确的,你也应该用php来检查它。

+0

这只是在出现错误的情况下。员工只是普遍的......好吧他们的错误...... – ldiggins

+0

我想了解你的代码,而不需要复制和粘贴它(除了我的表单还有更多内容,只是工作时间)。脚本的哪部分内容正在看待工作投入? “form.job”是否自动知道job1,job2等?如果我插入5或10个工作,并且只是称他们为job5,job6等。它会自动计算吗?而且我会改变“(x = 1; x <= 4; x ++)4是硬编码工作的数量是不是正确? – ldiggins

+0

恩只是玩弄它而已。 。如果我使用下拉列表,编码是不同的?而不是文本输入?像它将选项1,2,3,4? – ldiggins

0

理论上这可以用JavaScript来完成,但它会有点尴尬(也许更有问题,这将是非常不安全的 - 用户可以很容易地克服你所建立的任何JavaScript块,一个无效的表单可以使它成为到数据库的方式)。所以,如果我是你,我会考虑纯粹用php来实现这个需求。您可以使用提交的值返回表单并在输入无效时显示错误消息。

但是,一旦你有服务器端验证工作,你仍然可能需要一点JavaScript来提醒用户,如果他们即将提交的表单将被发现无效。要做到这一点,它有点复杂 - 它可能需要一些jQuery。你要做的是观察每个输入字段的变化(很可能使用change),此时我将从每个输入中收集数据并查看它们是否全部匹配。如果没有,则可以显示警告消息,表单不起作用。如果你是jQuery新手,这将需要一些工作,但它肯定可以完成。

相关问题