Javascript结果--无法正常工作

问题描述 投票:0回答:1

这是用DotNetNuke与XMod Pro模块和一个提交表格。 我有一个带有两个文本字段的下拉菜单。 下拉菜单中的两个选项("Additions "和 "Classes")需要只输入数字选项的属性类;第三个下拉菜单允许输入字母数字属性类。 脚本是在点击提交按钮时调用的。

在尝试让它工作的过程中,我配置了ALERTS来显示返回的值;见下文。

Class Type: Additions / Property Class: BLD1 / Result: false
Class Type: Additions / Property Class: 2874 / Result: true

Class Type: Classes / Property Class: GAR / Result: false
Class Type: Classes / Property Class: 3484 / Result: true

问题是,我的 "if else if "逻辑根本无法工作;我把它拆开,希望找出是什么原因导致的问题,但它每次都默认为 "ELSE "语句。 我把它配置为 "return false",因为我不希望每次都提交信息,如果逻辑不能正常工作。

任何帮助将非常感激。 谢谢你的帮助。

<script type="text/javascript">
  function ValidateClass()
  {
    var ClassType = document.getElementById(PropertyClassAdd.DDL_ClassType);
    var ClassTypeValue = ClassType.value

    var PropertyClass = document.getElementById(PropertyClassAdd.txt_PropertyClass);
    var PropertyClassValue = PropertyClass.value

    var resultlogic = (/^[0-9]+$/.test(PropertyClassValue));

    if (ClassTypeValue == 'Additions' && resultlogic== 'false')
    {
      //alert("Please Enter a numeric value");
      alert("Additions - Class Type: "+ ClassTypeValue + " / Property Class: " + PropertyClassValue + " / Result: " + resultlogic);
      return false;
    }
    else if (ClassTypeValue == 'Classes' && resultlogic == 'false')
    {
      //alert("Please Enter a numeric value");
      alert("Classes - Class Type: "+ ClassTypeValue + " / Property Class: " + PropertyClassValue + " / Result: " + resultlogic);
      return false;
    }
    else if (ClassTypeValue == 'Additions' && resultlogic == 'true')
    {
      //alert("This Works");
      alert("Additions - Class Type: "+ ClassTypeValue + " / Property Class: " + PropertyClassValue + " / Result: " + resultlogic);
      return true;
    }
    else if (ClassTypeValue == 'Classes' && resultlogic == 'true')
    {
      //alert("This Works");
      alert("Classes - Class Type: "+ ClassTypeValue + " / Property Class: " + PropertyClassValue + " / Result: " + resultlogic);
      return true;
    }
    else
    {
      alert("ELSE - Class Type: "+ ClassTypeValue + " / Property Class: " + PropertyClassValue + " / Result: " + resultlogic);
      return false;
    }
  }
</script>
javascript logic dotnetnuke
1个回答
0
投票

谢谢你看了我的代码。 我想明白了,结果logic是一个布尔位答案。

所以把代码改成寻找 "0 "或 "1",而不是 "false "或 "true",就解决了这个问题。

<script type="text/javascript">
  function ValidateClass()
  {
....    
    if (ClassTypeValue == 'Additions' && resultlogic == 0)
....
    else if (ClassTypeValue == 'Classes' && resultlogic == 0)
....
    else if (ClassTypeValue == 'Additions' && resultlogic == 1)
....
    else if (ClassTypeValue == 'Classes' && resultlogic == 1)
....
    else
....
  }
</script>
© www.soinside.com 2019 - 2024. All rights reserved.