这里我要做的是,如果我选中复选框,则应使用“,”作为值之间的分隔符将相应复选框的值附加到文本框。如果选中的相应复选框的值为空,则应提醒电子邮件 ID 无效并取消选中值为空的复选框。
工作原理:
- 如果我选中复选框,则值将附加到文本框。
- 如果我选中值为空的复选框,我会收到警报。
- 如果我取消选中这些值会自动从文本框中删除。
什么不工作:
- 电子邮件 ID 验证不工作。函数已编写,但无法正常工作。(控制台中没有错误)
- 如果我通过选中具有值的框选择了几个选项,然后如果我选择值为空的复选框,我不会收到无效的电子邮件 ID 警报。
这是下面的代码。
HTML:
<label>Recipients : </label>
<input style="width:450px;" type="text" id="toaddress" name="toaddress"></input>
<br>
<div class="plist" style="padding:20px;">
<input type="checkbox" value="abcp@gmail.com">Pradeep</input><br>
<input type="checkbox" value="cd@gmail.com">Karthik</input><br>
<input type="checkbox" value="abcn@p.com">akfkl</input><br>
<input type="checkbox" value="ksake@po.com">afljs</input><br>
<input type="checkbox" value="">abc</input><br>
<input type="checkbox" value="">xyzop</input><br>
<input type="checkbox" value="abc@cto.com">jay</input><br>
<input type="checkbox" value="">raj</input><br>
</div>
JavaScript:
function updateTextArea() {
var allVals = [];
$('.plist :checked').each(function (i) {
if ($.trim($('.plist :checked').val()) === '' && validateEmail($('.plist :checked').val())) {
$(this)
alert("Email ID is invalid for the selected patient ! \n Example: abc@xyz.com");
} else {
allVals.push((i !== 0 ? "\r\n" : "") + $(this).val());
}
$('#toaddress').val(allVals).attr('rows', allVals.length);
});
}
$(function () {
$('.plist input').click(updateTextArea);
updateTextArea();
});
function validateEmail($email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if (!emailReg.test($email)) {
return false;
} else {
return true;
}
}
JSFiddle 的链接在这里 http://jsfiddle.net/RhjjA/