javascript - 发现 if 语句中的特定参数不正确?

标签 javascript jquery html if-statement

假设我正在制作一份注册表单。现在我希望它突出显示四个字段中的空白字段。现在我可以只执行一堆 if-else 语句,但这将花费很长时间。

假设我有以下代码:

Javascript:

if($firstname === "" || $lastname==="" || $email ==="" && $phone === ""){
        //What goes here?
    }

我想通过括号内的信息来查找其中哪一个($firstname、$lastname 等)是正确的,然后允许它更改该特定变量的 css,以便我可以照亮输入字段以显示该信息尚未输入。

现有代码: http://jsfiddle.net/EVkge/

Click on JSFiddle to see code

最佳答案

你把这个复杂化了,只需将 addClass() 与匿名函数一起使用即可:

$('input').addClass(function () {
    return this.value == '' ? 'empty' : '';
});

JS Fiddle demo .

显然,将类名更改为您想要的任何类名;您可能已经猜到 : 后面的 '' 是一个空字符串,如果 this.value 不存在,则会返回该空字符串等于''(?之前的评估)。

正如评论中所指出的,如果能够在相关 input 元素变为非空时删除添加的类,那就更好了;考虑到这一点,一个简单的方法的工作原理应该是显而易见的:

$('input:button').click(function () {
    $('input').each(function () {
        var that = $(this),
            val = that.val();
        if (val === '') {
            that.addClass('empty');
        } else {
            that.removeClass('empty');
        }
    });
});

JS Fiddle demo .

其次,还有一种更简洁的方法,相当于上面的方法:

$('input:button').click(function () {
    $('input').each(function(){
        $(this)[this.value == '' ? 'addClass' : 'removeClass']('empty');
    });
});

JS Fiddle demo .

这利用了这样一个事实:可以使用 Object.propertyNameObject['propertyName'] 表示法来访问对象的方法,还可以使用以下功能在这些方括号中运行条件(三元)运算符,以确定是否应使用 addClass()removeClass() 方法来处理 empty 类名在下面的括号中提供。

引用文献:

关于javascript - 发现 if 语句中的特定参数不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15213559/

相关文章:

javascript - 向标记添加不同图像的功能 – React-native MapView

javascript - 选中复选框后导航到动态创建的 Backbone 路径

javascript - 呈现部分内容并转义书签的 html/javascript

javascript - 如何在 Office 2013 应用程序中获取当前正在运行的应用程序的名称

html - 将 SCSS 附加到 HTML 文档

javascript - 使用 getJSON 动态更新 HTML

javascript - 正则表达式不应该在链接标签中运行

javascript - 如何使用 jquery 或 css3 使搜索栏响应

javascript - React Native 导航 - 绘制选项 - 添加开关

javascript - 如何操作 svg 外来对象 html 文本换行和定位?