jquery - 删除类/样式 onclick

标签 jquery css

我写了一些代码,我需要在您单击任一输入框后删除验证错误。但是,当我使用标准的 removeClass 时,它们不会产生预期的效果,因为它阻止我再次提交。

你可以明白我的意思:http://jsfiddle.net/5V7Uv/5/

HTML:

<form method="post" name="form1" action="/whatmask_output/">
    <div id="sectioncol">
        <label for="input-whatmask">whatmask</label>
        <input type="text" name="input-whatmask" id="input-whatmask"
        size="22" />
    </div>
    <div id="sectioncol">
        <label for="input-whois">whois</label>
        <input type="text" name="input-whois" id="input-whois" size="22"
        />
    </div>
    <input type="submit" value="submit" "whatmask_input" id="btn-search" align="right"
    />
</form>​

JavaScript:

var hasError = false;
$("form").submit(function (e) {
    var searchReg = /^[a-zA-Z0-9\s\/\.]+$/;
    if ($("#input-whatmask").val() != '' && $("#input-whois").val() != '') {
        alert('Enter only one field at a time.');
        return false;
    }
    if (hasError) return false;
    if ($("#input-whatmask").val() != '') {
        if (!searchReg.test($("#input-whatmask").val())) {
            $("#input-whatmask").addClass("errorinput").after('<span class="error">Enter a valid value.</span>');
            hasError = true;
            return false;
        }
    } else if ($("#input-whois").val() != '') {
        if (!searchReg.test($("#input-whois").val())) {
            $("#input-whois").addClass("errorinput").after('<span class="error">Enter a valid value.</span>');
            hasError = true;
            return false;
        }
    } else {
        alert('No values entered!');
        return false;
    }
});
$("#input-whatmask, #input-whois").click(function () {
    $("#input-whatmask, #input-whois").removeClass("errorinput");
    $("#input-whatmask, #input-whois").removeClass("error");
    $("#input-whatmask, #input-whois").val('');
    if ($(this).hasClass('errorinput')) {
        $(this).next().remove();
        $(this).removeClass("errorinput");
        hasError = false;
    }
});​

最佳答案

if (hasError) return false;

这一行看起来像违规者,因为您的 hasError 变量在第一次运行后设置为 true(当然,如果有错误),并且没有设置回 false。

尝试在这一行之后添加 hasError = false:

$("form").submit(function (e) {

关于jquery - 删除类/样式 onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10728125/

相关文章:

javascript - Yii2:用按钮调用javascript函数

html - 是否可以将两个 div 在另外两个 div 中水平居中?

html - 固定标题表在调整窗口大小时变形

html - 将html和CSS放入数据库mmsql中

使用 typed.min.js 的 JavaScript 循环函数

javascript - JQuery动画div从右到左平滑

javascript - JQGrid 自定义排序

css - &lt;!--[if IE]> 条件注释在 Facelets 中呈现为 HTML 转义

c# - jQuery Ajax 文件上传到带有 JSON 响应的 ASP.NET Web 服务

javascript - jQuery UI 未正确加载?找不到对话框方法