Javascript 检查参数时出现陷阱错误

Javascript 检查参数时出现陷阱错误,javascript,Javascript,这个问题真的很简单。我有一个接受传递参数的JS函数。如果传递的值为NULL,我希望为其设置陷阱,但我有限的JS经验导致我没有正确的语法。给你。我需要做什么来更改语法?显然,函数还有更多的功能,但当我没有捕捉空值时,它的其余部分工作正常。糟糕的语法在最后一行,我知道这与使用保留字有关,但我不知道如何使它工作 <script type="text/javascript"> //Pass UserName from text box on form to Ajax call

这个问题真的很简单。我有一个接受传递参数的JS函数。如果传递的值为NULL,我希望为其设置陷阱,但我有限的JS经验导致我没有正确的语法。给你。我需要做什么来更改语法?显然,函数还有更多的功能,但当我没有捕捉空值时,它的其余部分工作正常。糟糕的语法在最后一行,我知道这与使用保留字有关,但我不知道如何使它工作

<script type="text/javascript">

    //Pass UserName from text box on form to Ajax call 
  function CheckUserName(UserName_element) {

      var UserName = try { UserName_element.value; } catch (e) { };

//将用户名从表单上的文本框传递到Ajax调用
函数CheckUserName(UserName\u元素){
var UserName=try{UserName\u element.value;}catch(e){};
如果有人问:这是vbscript子脚本中的js函数(不幸的是,整个站点都是用经典asp编写的)

子用户名验证\u条目()
%>
“border=“0”style=“display:none;”alt=“用户名可用。”
title=“用户名可用。”/>
“border=“0”style=“display:none;”alt=“用户名已存在。”
title=“用户名已存在。”/>
//将用户名从表单上的文本框传递到Ajax调用
函数CheckUserName(UserName\u元素){
var UserName=UserName\u element.value;
var UserName=try{UserName\u element.value;}catch(e){};
$j.ajax({
数据:{action:'CheckUserName',p_UserName:UserName},
键入:“GET”,
url:'page\u logic/\u check\u username\u ajax.asp',
成功:功能(结果){
//如果用户存在,则返回X out,如果不存在,则返回绿色复选标记
如果(结果=“真”){
试试{valid_UserName_image.style.display=“none”}catch(e){};
尝试{invalid_UserName_image.style.display=“inline”}catch(e){};
}
否则{
试试{valid_UserName_image.style.display=“inline”}catch(e){};
请尝试{invalid_UserName_image.style.display=“none”}捕获(e){};
}
}
}
);
//返回false;
}
从这里打来的

           <tr class="required_field">
            <td class="empty"></td>
            <td><b>Username:</b></td>
            <td class="label_value_separator"></td>
            <td>
                <input type='text' name="username" size="24" maxlength="50" value="<%=Session("s_username") %>" onblur="CheckUserName(this);">
                <% Call UserNameValidation_Entry() %>

        </tr>

用户名:

正如minitech所提到的,您可能不需要尝试/捕捉这种情况。这只是在尝试访问可能是
“未定义”的对象属性时,或者在尝试解析可能无效的JSON时,才是真正的问题

只要

if ( username !== null ) {
  // Send AJAX request
} else {
  // Send error to UI
}

还有许多其他类似JavaScript null的检测模式。

如果用户名为null,您希望函数做什么?还可以提供如何调用
CheckUserName
的示例吗?何时不确定文本框是否存在?了解如何使用try/catch:--此类块不会返回值。您不能说
var UserName=try…
在您的示例中,这是一个语法错误。为什么要将所有内容都包装在try-catch块中?它们应该很少需要。try-catch主要用于javascript中的本机错误。例如JSON.parse或eval。很少会故意抛出错误。谢谢大家,在try-catch中包装是老板的要求,我最初没有使用它们。可能只是这里的一个标准。我会同意上面的建议。看起来很简单。如果这是一个要求,请尝试一下上面的内容?有点lol价值,但不会做任何事情。
if ( username !== null ) {
  // Send AJAX request
} else {
  // Send error to UI
}