我让这件事变得更糟、更困难,但我无法弄清楚这一点。
我需要为我们正在工作的特殊客户端应用程序进行一些自定义验证编码,所以不能使用 jquery val 插件
我想要的只是一个复选框和无线电验证功能,它与我为文本字段验证构建的基本相同。我的复选框和无线电验证代码太糟糕了,它破坏了最初工作的文本字段验证
我已经消除了我遇到的非工作代码灾难 - 有人可以告诉我如何工作吗?
使用我的 jsfiddle/下面的代码结构:当您单击“btnCatchReqFlds”按钮时,我希望它运行文本字段检查,然后运行复选框,单选检查并显示所有必需但未填写的字段/选中/选中。
看看jsfiddle,你会看到它是如何与文本字段验证一起工作的。我只需要使用复选框/单选按钮合并相同的功能/检查。
我想我很接近,很接近。我已经更新了代码,我知道这不是很好的编码,但要逐步获得我需要的东西。下面的代码现在检查必需但为空的文本和检查/单选字段。现在的问题是,代码抓取了正确的字段,但是“.not(':checked');” 无法正常工作。如果我选中其中一个收音机/复选框,我会得到相同的返回值。我做错了什么:return $(this).not(':checked');
jQuery:
$("#btnCatchReqFlds").on('click', function()
{
$("#holdErrMsg").empty();
$("#holdErrMsg_checkRadios").empty();
var requiredButEmpty = $("fieldset:visible").find('input[class*="-required"], select[class*="-required"]').filter(function()
{
return $.trim($(this).val()) === "";
});
var chk_requiredButEmpty = $("fieldset:visible").find(":input:checkbox[class*='-required'],:input:radio[class*='-required']").filter(function()
{
return $(this).not(':checked');
});
if (requiredButEmpty.length)
{
requiredButEmpty.each(function ()
{
$("#holdErrMsg").append("Please fill in the " + this.name + "<br />");
});
}
if (chk_requiredButEmpty.length)
{
chk_requiredButEmpty.each(function ()
{
$("#holdErrMsg_checkRadios").append("Please fill in the " + this.name + "<br />");
});
}
return !requiredButEmpty.length;
return !chk_requiredButEmpty.length;
});
HTML:
<form method="post" action="">
<div id="holdErrMsg"></div>
<div id="holdErrMsg_checkRadios"></div>
<fieldset id="mainSection" name="mainSection">
<legend style="color:blue; font-weight:bold">Project Overview Section</legend>
<table style="width: 100%">
<tr>
<td style="height: 33px; width: 178px;">Name<span style="color: red">*</span></td>
<td style="height: 33px"><input id="1125" name="1125" class="1125-required" type="text" /> - 1125</td>
</tr>
<tr>
<td style="height: 33px; width: 178px;">Email<span style="color: red">*</span></td>
<td style="height: 33px"><input id="1026" name="1026" class="1026-required" type="text" /> - 1126</td>
</tr>
<tr>
<td style="width: 178px">Product Title</td>
<td><input id="1089" name="1089" type="text" /></td>
</tr>
<tr>
<td style="width: 178px">Product Type</td>
<td>
<select id="1169" name="1169">
<option value="">Select</option>
<option value="Cars">Cars</option>
<option value="Boats">Boats</option>
<option value="Planes">Planes</option>
</select>
</td>
</tr>
<tr>
<td>
<button id="btnCatchReqFlds" type="button" name="btn">Check Required Fields</button>
</td>
</tr>
</table>
</fieldset>
<!-- Car Section -->
<fieldset id="section-11" name="section-11">
<legend style="color:fuchsia; font-weight:bold">Car Details Section</legend>
<table cellpadding="2" style="width: 100%">
<tr>
<td style="width: 334px; height: 35px"><label>Size:<span style="color: red">*</span></label></td>
<td style="height: 35px"><input id="1245" class="1245-required" name="1245" type="text" /> - 1245</td>
</tr>
<tr>
<td style="height: 35px; width: 334px">Color:<span style="color: red">*</span></td>
<td style="height: 35px">
<select id="1433" class="1433-required" name="1433">
<option value="">Select</option>
<option value="Orange">Orange</option>
<option value="Blank">Blank</option>
<option value="Green">Green</option>
</select>
- 1433
</td>
</tr>
<tr>
<td style="width: 334px">Description:</td>
<td>
<textarea id="1290" name="1290" rows="2" style="width: 433px"></textarea>
</td>
</tr>
</table>
</fieldset>
<!-- Plane Section -->
<fieldset id="section-12" name="section-12">
<legend style="color:fuchsia; font-weight:bold">Plane Details Section</legend>
<table cellpadding="2" style="width: 100%">
<tr>
<td style="width: 334px; height: 35px"><label>Size:</label></td>
<td style="height: 35px"><input id="1245" name="1245" type="text" /></td>
</tr>
<tr>
<td style="height: 35px; width: 334px">Color<span style="color: red">*</span>:</td>
<td style="height: 35px">
<input type="checkbox" name="1433[]" id="1433[]" value"Orange" class="1433[]-required" />Orange
<input type="checkbox" name="1433[]" id="1433[]" value"Blue" class="1433[]-required" />Blue
<input type="checkbox" name="1433[]" id="1433[]" value"Green" class="1433[]-required" />Green
| 1302
</td>
</tr>
<tr>
<td style="width: 334px">Description:</td>
<td>
<textarea id="1290" name="1290" rows="2" style="width: 433px"></textarea>
</td>
</tr>
</table>
</fieldset>
<!-- Boat Section -->
<fieldset id="section-13" name="section-13">
<legend style="color:fuchsia; font-weight:bold">Boat Details Section</legend>
<table cellpadding="2" style="width: 100%">
<tr>
<td style="width: 334px; height: 35px"><label>Size:</label></td>
<td style="height: 35px"><input id="1245" name="1245" type="text" /></td>
</tr>
<tr>
<td style="height: 35px; width: 334px">Color:<span style="color: red">*</span></td>
<td style="height: 35px">
<input type="radio" name="1834" id="1834" value="None" class="valuetext 1834-required" />None
<input type="radio" name="1834" id="1834" value="All" class="valuetext 1834-required" />All
- 1834
</td>
</tr>
<tr>
<td style="width: 334px">Description:</td>
<td>
<textarea id="1290" name="1290" rows="2" style="width: 433px"></textarea>
</td>
</tr>
</table>
</fieldset>
<br />
<!-- Misc. Info Section -->
<fieldset id="section-1011" name="section-1011">
<legend style="color:green; font-weight:bold">Misc. Info Section</legend>
<table cellpadding="2" style="width: 100%">
<tr>
<td style="width: 334px; height: 35px"><label>Size:</label></td>
<td style="height: 35px"><input id="1301" name="1301" type="text" /></td>
</tr>
<tr>
<td style="height: 35px; width: 334px">Color:</td>
<td style="height: 35px">
<select id="1302" name="1302">
<option value="Orange">Orange</option>
<option value="Blank">Blank</option>
<option value="Green">Green</option>
</select>
</td>
</tr>
<tr>
<td style="width: 334px">Description:</td>
<td>
<textarea id="1303" name="1303" rows="2" style="width: 433px"></textarea>
</td>
</tr>
</table>
</fieldset>
</form>