簡體   English   中英

jQuery檢查復選框是否已選中,並使用復選框的值更新texbox的值,並取消選中是否為空

[英]jQuery check if checkbox is checked and update the value of the texbox with the checkbox's value and uncheck if it's empty

在這里,我要嘗試做的是,如果我選中復選框,則應使用“,”作為值之間的分隔符,將相應復選框的值附加到文本框。 並且,如果選中的相應復選框的值為空,則應警告電子郵件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/

if ($.trim($(this).val()) === '' && validateEmail($(this).val())) {
            $(this).attr('checked',false);
            alert("Email ID is invalid for the selected patient ! \n Example: abc@xyz.com");

檢查http://jsfiddle.net/RhjjA/3/

  1. 我更改了validateEmail
  2. 當您遍歷$時將其更改為$(this)。
  3. 我正在考慮檢查該值是否為空或無效,因為這些條件都不允許通過檢查。 如此添加! validateEmail的信息。
  4. 我添加了一個$(this).attr('checked', false);

這應該可以幫助您上路。

您的代碼可以正常工作,只保留一個微小的細節,如果條件成立,則添加$(this) 它不以分號結尾,也不是必需的。 評論此行,然后嘗試。

http://jsfiddle.net/RhjjA/5/

我是從您的第一個問題開始的:jsfiddle.net/hBGD6/4/

2個主要問題是

  • if(“ string is empty” AND“ validateEmail”)無法正常工作(因此所有字符串都可以)。 應該為if(“字符串為空”或“ NOT validateEmail”)
  • validateEmail()使用的參數是返回null的函數(或未定義的函數),該函數對emailReg.test()無效

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM