布尔和文本字段验证-Javascript

时间:2019-02-22 06:02:49

标签: javascript html

我有一个表单,该表单使用文本字段(用于SMS编号)和布尔字段(用于SMS选择加入)向自身发布。当最终用户去发布表单时,我似乎无法正确获取语法以进行验证。

如果他们选择要加入的布尔值,那么表单应检查文本字段中的短信编号,如果短信编号为空,则显示错误。

这是我的JavaScript代码段:

if (document.getElementById("smsOpt").checked = 'true' && document.getElementById("smsNum").value = ''){
          error += "smsOpt";
          document.getElementById("smsOpt").focus();
          document.getElementById("smsOptError").style.display='block';
       }

4 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

if (document.getElementById("smsOpt").checked && document.getElementById("smsNum").value.trim() == ''){
      error += "smsOpt";
      document.getElementById("smsOpt").focus();
      document.getElementById("smsOptError").style.display='block';
   }

对于复选框,checked属性为boolean类型,因此仅使用“ checked”即可。对于第二个属性,您可以将其与一个空字符串进行比较。 JS中的Single =运算符用于赋值,而不是比较。

答案 1 :(得分:0)

在不同情况下,您必须使用=====代替=

if (document.getElementById("smsOpt").checked == 'true' && document.getElementById("smsNum").value == ''){
          error += "smsOpt";
          document.getElementById("smsOpt").focus();
          document.getElementById("smsOptError").style.display='block';
       }

答案 2 :(得分:0)

在JavaScript =中仅用于分配,因此您的if语句在输入中设置checked=true而不是检查它是什么。 (或者实际上不管它是什么,都将其设置为true,然后评估将值始终设置为true的结果)

您需要使用==或更高级的===

if (document.getElementById("smsOpt").checked === true && document.getElementById("smsNum").value.trim() === '') {

我还添加了trim(),因此它忽略了是否仅插入空格。

答案 3 :(得分:0)

在这种情况下,实际上不需要使用任何等于运算符。您可以执行以下操作:

if (document.getElementById("smsOpt").checked && !document.getElementById("smsNum").value){
          error += "smsOpt";
          document.getElementById("smsOpt").focus();
          document.getElementById("smsOptError").style.display='block';
       }

但是,如果要使用它们,请使用三重===或二重相等==运算符进行操作。您可以检查这两个here之间的区别。