Javascript JS验证问题

Javascript JS验证问题,javascript,jquery,css,validation,Javascript,Jquery,Css,Validation,我的验证函数是这样的 var fname = $("#fname").val(); var lname = $("#lname").val(); function validate() { var isValid = true; if (!fname) { $("#fname").attr('class', 'invalid'); isValid=false; } if (!lname) {

我的验证函数是这样的

var fname = $("#fname").val();
var lname = $("#lname").val();

function validate() {
    var isValid = true;
     if (!fname) {
            $("#fname").attr('class', 'invalid');
            isValid=false;
        }

    if (!lname) {
        $("#lname").attr('class', 'invalid');
        isValid=false;
    }
它只是更改未填充输入框的类别


我知道我可以为每个
if
编写
else
,如果用户填写了一些输入,我可以更改回默认值(
class=“valid”
)。但我如何才能为所有输入创建通用的东西,以便将用户在第一次验证错误后填写的输入更改回默认类

你可以假设一切都是有效的,然后试图反驳,或者你可以尝试证明它的有效性。下面采用第一种方法,将所有类设置为“valid”以与之一致

function validate() {
  // Get the current form input state.
  var fname = $("#fname");
  var lname = $("#lname");

  // Assume everything valid until proven otherwise.
  var isValid = true;
  fname.attr('class', 'valid');
  lname.attr('class', 'valid');

  if (!fname.val()) {
    fname.attr('class', 'invalid');
    isValid=false;
  }

  if (!lname.val()) {
    lname.attr('class', 'invalid');
    isValid=false;
  }

  return isValid;
}
嗯。我找到路了

  $('input[type="text"],input[type="password"]').keypress(function () {
        $(this).attr('class', 'valid');
});

太好了!但是,为什么要在代码中进行过度处理?这将增加不必要的压力。由于对于“已解决”的内容,您将向所有输入类型文本或密码添加“有效”类,因此只需将其添加到直接代码中的实际输入元素:

<input class='valid' ..... />

或者类似的东西…

您可以使用
addClass
方法。将
invalid
类添加到对象
$('your_selector')。添加类('invalid')
,验证后只需使用
$('your_selector')。移除类('invalid')
我已经添加了有效类并再次阅读我的答案。这就是按键功能,“将向所有输入类型文本或密码添加“有效”类”-它仅在用户按键时添加有效类其中一种方法是:表单。。。。onSubmit='validateIt(这个);'验证它将遍历表单中的项目,并将每个项目发送给验证(item)。例:函数validateIt(formID){对于每个…验证(项)…}如果!formfield位在语法上无效。移除这两个代币会更接近你想要做的吗?你修复了什么?因此,我们应该有能力删除所谓的“编辑”修复的内容。现在我不知道我有多相信你(不是我不相信)已经修复了。。。一个不存在的问题。。。13天。
function validate(formField) {
    if !formField $('#'+formField).removeClass('valid').addClass('invalid');
}