javascript表单不起作用
Posted
技术标签:
【中文标题】javascript表单不起作用【英文标题】:javascript form doesn't work 【发布时间】:2013-02-12 09:43:24 【问题描述】:我尝试创建一个 javascript 表单,但无法使用它。出现的错误是
邮政编码应由字母和数字组成: 地址应该是字母数字:请将每本杂志限制在 500 份以内
函数显示() var 总价格; var fname、lname、fullname、addr、postocde、电子邮件、电话、lstitem、数量、性别; var prditem1,prditem2,prditem3,2012 年夏季,2012 年秋季,2012 年冬季,totqty; var orddate; fname = document.form1.fname.value; lname = document.form1.lname.value; //全名 = fname + " " + lname; 性别 = document.form1.gender.value; addr = 文档.form1.address.value; 邮政编码 = document.form1.address.value; 电子邮件 = document.form1.email.value; 电话 = document.form1.telephone.value; prditem1 = document.form1.summer.value; prditem2 = document.form1.autumn.value; prditem3 = document.form1.winter.value; summer2012 = parseInt(document.form1.summer2012.value); 秋季 2012 = parseInt(document.form1.autumn2012.value); Winter2012 = parseInt(document.form1.winter2012.value); totqty = 2012 年夏季 + 2012 年秋季 + 2012 年冬季; orddate = 新日期(); dispdate = orddate.getMonth() + 1 + "-" + orddate.getDate() + "-" + orddate.getYear(); var alertmsg = ''; var 字母 = /^[a-zàâçéèêêëîïôûùüÿñ-]*$/i var 字母数字 = /^[a-zA-Z0-9/./,/-/\n]+$/; var addrtxt = addr.replace(/(\x0a\x0d|\x0d\x0a)/g, "\n"); var chkpostcode = /^((GIR 0AA)|((([A-PR-UWYZ][A-HK-Y]?[0-9][0-9]?)|(([A-PR-UWYZ] ][0-9] [A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRV-Y]))) [0-9][ABD-HJLNP -UW-Z]2))$/ var chktelephone = /^0\d9,10$/ var chkEmail = /^.+@.+..+$/ var chkquantity = /^([1-9]?\d|[1-4]\d2|500)$/ if (chkEmail.test(email) == false) alertmsg = alertmsg + "请输入有效的电子邮件。" + "\n"; 如果 ((alphabetic.test(fname) == false) || (alphabetic.test(lname) == false)) alertmsg = alertmsg + "名字应该是字母:" + "\n"; 如果(chktelephone.test(电话)==假) alertmsg = alertmsg + "电话应该是数字:" + "\n"; if (chkpostcode.test(postcode) == false) alertmsg = alertmsg + "邮政编码应为字母和数字:" + "\n"; if (alphanumeric.test(addrtxt) == false) alertmsg = alertmsg + "地址应该是字母数字:" + "\n"; var 性别 = document.form1.gender[0].checked; var gender1 = document.form1.gender[1].checked; if (!gender && !gender1) alertmsg = alertmsg + "请选择您的性别\n" 如果 (((document.form1.summer.checked) && (summer2012 0)) || ((!document.form1.autumn.checked) && (autumn2012 > 0)) || ((!document.form1 .winter.checked) && (winter2012 > 0))) alertmsg = alertmsg + "请选择产品" + "\n"; var f = document.form1; 如果 (!f.summer.checked && !f.autumn.checked && !f.winter.checked) alertmsg = alertmsg + "请至少选择一期杂志" + "\n"; 如果(chkquantity.test(数量)
谁能指出我做错了什么?任何帮助将不胜感激。谢谢
这里是html -
<form name="form1" method="post">
<fieldset id="fieldset">
<legend id="legend">Order the latest Saraysounds Magazine</legend>
<table border=0 align="left" cellpadding="4" cellspacing="4">
<tr>
<td colspan="2"><div align="left">First
Name</div></td>
<td colspan="2"><input type="text" name="fname"/>
</td>
</tr>
<tr>
<td colspan="2"><div align="left">Second
Name</div></td>
<td colspan="2">
<input type="text" name="lname"/>
</td>
</tr>
<tr>
<td colspan="2"><div align="left">Gender</div></td>
<td colspan="2">
<input type="radio" name="gender" value="M"/>
Male
<input type="radio" name="gender" value="F"/>
Female </td>
</tr>
<tr>
<td colspan="2"><div align="left">Address</div></td>
<td colspan="2"><textarea name="address" cols="30" rows=5 col=40 wrap=soft> </textarea>
</td>
</tr>
<tr>
<td colspan="2"><div align="left">Postcode</div></td>
<td colspan="2"> <input type="text" name="postcode"/>
</td>
</tr>
<tr>
<td colspan="2"><div align="left">Email</div></td>
<td colspan="2">
<input type="text" name="email"/>
</td>
</tr>
<tr>
<td colspan="2"><div align="left">Telephone</div></td>
<td colspan="2">
<input type="text" name="telephone"/>
</td>
</tr>
<tr>
<td colspan="4"><center>
<strong>Select
Magazine</strong>
</center></td>
</tr>
<tr>
<td ><center>
<strong>Product Name</strong>
</center></td>
<td ><center>
<strong></strong>
</center></td>
<td ><center>
<strong>Price</strong>
</center></td>
<td>
<strong>Quantity</strong>
</td>
</tr>
<tr>
<td align="right">Summer 2012
</td>
<td>
<input type="checkbox" name="summer" value="Summer 2012"/>
</td>
<td align="center" ><div align="right">20.00 </div></td>
<td ><input name="summer2012" type="text" size="5" value="0"/></td>
</tr>
<tr>
<td align="right">Autumn 2012
</td>
<td>
<input type="checkbox" name="autumn" value="Autumn 2012"/>
</td>
<td align="center" ><div align="right">20.00 </div></td>
<td><input name="autumn2012" type="text" size="5" value="0"/></td>
</tr>
<tr>
<td align="right">Winter 2012
</td>
<td>
<input type="checkbox" name="winter" value="Winter 2012"/>
</td>
<td align="center" ><div align="right">20.00</div></td>
<td><input name="winter2012" type="text" size="5" value="0"/></td>
</tr>
<tr>
<td align="center" colspan="4"><input name="button" type="button" onClick="javascript:display()" value="Submit"/>
<input type="reset" value="Clear Form"/>
</td>
</tr>
</table>
</fieldset>
</form>
【问题讨论】:
请也显示 HTML...(3 周真是太长了...) 请向我们提供指向您的代码示例jsfiddle 的链接,以便我们为您提供帮助! 有什么不好的?究竟出了什么问题? 这个问题对我们帮助不大。你排除了任何可能的问题吗?你能把它缩小到任何类别,无论多么广泛?到目前为止你做了什么? 它不会除了我的小写或大写邮政编码。它说地址必须是字母数字,除了数量之外不会 【参考方案1】:修改这些:
脚本
var alphanumeric = /^[a-zA-Z0-9\.\,\-\n]+$/;
var quantity = new Array();
quantity[0] = parseInt(document.form1.summer2012.value);
quantity[1] = parseInt(document.form1.autumn2012.value);
quantity[2] = parseInt(document.form1.winter2012.value);
if (quantity[0] > 500 || quantity[1] > 500 || quantity[2] > 500)
alertmsg = alertmsg + "Please limit each magazine to 500 copies or less:" + "\n";
HTML
<td colspan="2"><textarea name="address" cols="30" rows=5 col=40 wrap=soft></textarea>
【讨论】:
我修改了数量,没有出现错误信息,但允许我输入超过500份?以上是关于javascript表单不起作用的主要内容,如果未能解决你的问题,请参考以下文章
带有 javascript 和 php 的动态表单字段:它不起作用
使用 html 和 javascript 来允许是不是调用表单操作不起作用(在 php 中回显)
当javascript在元素上调用提交时,jQuery覆盖表单提交不起作用