无法比较javascript变量

时间:2016-05-17 07:19:02

标签: javascript jsp

这是我的javascript函数

function onload(){
   var calMaxAmtStatus='<%=request.getAttribute("calMaxAmountStatus") %>'; 
    alert(calMaxAmtStatus);        
    if (typeof(calMaxAmtStatus) != 'undefined' && calMaxAmtStatus != null){
    document.forms[0].status.value=calMaxAmtStatus;  
    }

我正在

request.getAttribute("calMaxAmountStatus") 
在某些情况下

值 我想将值设置为一个字段,只要它不是null或空字符串。

这是我迄今所做的 我打印了calMaxAmtStatus它给了我字符串作为结果

。但是当我试图将它与非{null}这样的calMaxAmtStatus !=null进行比较时,似乎无效。

我每次都会在该字段中打印空白

我的问题是,如果calMaxAmtStatus变量没有任何值,我不想打印任何内容。

3 个答案:

答案 0 :(得分:1)

永远不会执行此代码:var calMaxAmtStatus='<%=request.getAttribute("calMaxAmountStatus") %>'。因为在任何情况下你都会有一个字符串值。

在此代码中,calMaxAmtStatus request.getAttribute("calMaxAmountStatus")变量始终具有字符串值。即使null将在java中返回"null",但在JavaScript中它将转换为function onload(){ var calMaxAmtStatus='<%=request.getAttribute("calMaxAmountStatus") %>'; alert(calMaxAmtStatus); if (calMaxAmtStatus && calMaxAmtStatus != 'null') { document.forms[0].status.value=calMaxAmtStatus; } } 值。引用的词&#34; null&#34;。

试试这个:

if (calMaxAmtStatus && calMaxAmtStatus != 'null') {

    /*
        If calMaxAmtStatus is not an empty string and 
        calMaxAmtStatus is not equal to 'null' string 
        value (NOT to null primitive type) run your code
    */
}

让我们分析:

.

答案 1 :(得分:0)

我认为这里的问题是你声明中的引用

  

&#39;&lt;%= request.getAttribute(&#34; calMaxAmountStatus&#34;)%&gt;&#39;

这将导致将null变量指定为&#39; null&#39;这意味着你的变量永远不会真正未定义添加到你的if来检查&#39; null&#39;的字符串值。

  

if(typeof(calMaxAmtStatus)!=&#39; undefined&amp;&amp;&amp; calMaxAmtStatus!= null&amp;&amp; calMaxAmtStatus!=&#39; null&#39;)

答案 2 :(得分:0)

让测试在服务器端:

CREATE TABLE [dbo].[User] (
    [Username]  VARCHAR (100) NOT NULL,
    [Pasword]   VARCHAR (100) NOT NULL,
    [FName]     VARCHAR (MAX) NOT NULL,
    [LName]     VARCHAR (MAX) NOT NULL,
    [Location]  VARCHAR (MAX) NOT NULL,
    [Profesion] VARCHAR (MAX) NOT NULL,
    [email]     VARCHAR (MAX) NOT NULL,
    [gender]    VARCHAR (MAX) NOT NULL,
    [money]     INT           NOT NULL,
    [property]  VARCHAR (MAX) NULL,
    [xp]        INT           NOT NULL,
    [level]     INT           NOT NULL,
    PRIMARY KEY CLUSTERED ([Username] ASC)
);