根据用户输入显示或隐藏字段

时间:2018-03-31 09:17:28

标签: javascript jquery onchange

我必须显示复选框,仅当firstname匹配 abc email abc@gmail.com 时才会显示。

var x = abc; //will come dynamically
var y = abc @gmail.com

jQuery("#firstname").on('change', (function(avalue) {
    return function(e) {

        if (e.targetvalue == avalue) {
            //show checkbox
        } else {
            //hide checkbox
        }
    };
})(x));

jQuery("#email").on('change', (function(avalue) {
    return function(e) {

        if (e.targetvalue == avalue) {
            //show checkbox
        } else {
            //hide checkbox
        }
    };
})(y));

这很好用。但是,如果我输入用户名 abc 并发送电子邮件 abc@gmail.com ,那么我再次输入错误的电子邮件,该复选框已隐藏,这不应该因为名称已设置< strong> abc 正确。

我怎么能实现这个目标?

2 个答案:

答案 0 :(得分:2)

问题是您要单独检查字段值。您需要在firstname onchange函数中检查电子邮件字段值,并检查电子邮件onchange中的firstname字段值。没有它,两个领域之间就没有逻辑关系。

答案 1 :(得分:1)

您应该将这两个检查合并为一个,如下所示:

var x = abc; //will come dynamically
var y = abc@gmail.com

function checkValues() {
    if(jQuery("#firstname").val() == x && jQuery("#email").val() == y) {
          //show checkbox
    } else{
         //hide checkbox
    }
}

jQuery("#firstname, #email").on('change', checkValues);

虽然已经使用了jQuery,但您也可以通过以下方式替换最后一行:

jQuery("#firstname, #email").change(checkValues);