JS:输入类型的表单验证

时间:2015-08-10 10:50:10

标签: javascript jquery validation

我尝试进行一些表单验证,但是不想按类名选择表单输入。有没有办法可以根据输入属性类型循环验证。我玩过代码,但收效甚微。可能会在这些方面思考一些事情:

编辑:我不想使用插件

function validator (myForm) {

  // If type equals Email
  if($(myForm + " input").attr("type") == "email") {
    // Validate Email Here
  }

  // If type equal text
  if($(myForm + " input").attr("type") == "text") {
    // Validate Text Here
  }
}

2 个答案:

答案 0 :(得分:4)

是的,你可以这样做。

首先,如果myForm是一个DOM元素,那么您需要$(myForm).find(...)而不是$(myForm + " ..."),因为后者会导致选择器无效。如果myForm是包含有效选择器的字符串,那就没关系。

您的if($(myForm + " input").attr("type") == "email") {无法正常运行,因为它会在您的表单中获取第一个 type的{​​{1}}并将其与字符串进行比较input。它不会在您的表单中找到所有电子邮件输入。

您可以使用属性选择器选择特定类型的输入,例如:

"email"

$(myForm).find("input[type=email]").each(function() {
    // Validate email inputs; each input is available as `this`,
    // which is a DOM element
});

(在这种情况下,我们不需要围绕属性值引用,因为它们是单个单词。)

您也可以查看HTML5 form validation stuff

当然,您可能知道这一点,但您使用客户端JavaScript(或其他浏览器功能)进行的任何验证纯粹是出于UI / UX目的。您仍然需要验证服务器上的内容,因为可以完全绕过客户端验证...

答案 1 :(得分:-1)

你可以按下面的属性找到输入元素。

//If type equals Email
$('input [type = email]')
// If type equals Email
$('input [type = text]')

如上所述,您可以访问。