我正在学习JavaScript。第一天!我想连接名字和姓氏。这就是我目前所拥有的。它工作正常,但如果我不进入其中一个字段,它只会显示为无效的.我该如何避免?我应该把这个子句放在下面的代码中的什么地方?提前感谢您的帮助!

函数ShowFullName(){var varFirstName=Xrm。Page.getAttribute(“lauren_firstname”).getValue();var varLastName=Xrm。Page.getAttribute(“lauren_lastname”).getValue();Xrm公司。Page.getAttribute(“lauren_name”).setValue(varFirstName+“”+varLastName);};
4
  • 4
    学习JScript(或任何东西)的一部分是学习使用文档。当然,欢迎您在这里提问,但请注意,您需要展示研究成果。
    – 竖琴
    评论 2012年10月24日19:44
  • 顺便问一下,你在用什么图书馆?或者,“JScript”实际上不是拼写错误吗? 评论 2012年10月24日19:47
  • 对于像我这样的新人,有什么建议吗。我被推到了这个世界上,我正在网上阅读,试图尽我所能理解JavaScript的使用。我需要一个初学者指南。有什么建议吗?我当前正在尝试在Microsoft Dynamics CRM 2011中使用它。
    – 劳伦
    评论 2012年10月24日20:07
  • @劳伦:在谷歌上搜索“道格拉斯·克罗福德”并在YouTube上观看他的演讲。 评论 2012年10月24日20:33

3个答案

重置为默认值

你可以利用这个事实所有变量都是真实的虚伪的在JavaScript中。换句话说,每个变量都可以强制(转换)为真的.

无效的虚伪的,和包含内容的字符串是真实的。这意味着:

var a=空;var b=“你好”;如果(a){//不运行}其他{//运行}如果(b){//运行}

你也可以使用其他类型的表达式,比如三元表达式逻辑OR运算符:

警告(a?“是”:“否”);//=>警告(b?“是”:“否”);//=>警报(a||b);//=>你好

在这种情况下,逻辑OR是我们最有趣的选择。使用运算符时,会发生以下情况:

  1. 如果左侧评估真实的,返回该值。
  2. 否则,返回右侧求值的值。

在上面的示例中,无效的,就是这样虚伪的。表达式返回右侧的值b条。所以我们可以通过写作来利用这种行为varFirstName |“”,它将返回第一个名称(如果有),或者如果它为null,右侧将给我们一个空字符串。

函数ShowFullName(){var varFirstName=Xrm。Page.getAttribute(“lauren_firstname”).getValue();var varLastName=Xrm。Page.getAttribute(“lauren_lastname”).getValue();Xrm公司。Page.getAttribute(“lauren_name”).setValue(((varFirstName||'')+“”+(varLastName||'')).trim());}

我添加了一个呼叫修剪从结果中删除多余的空格。

0
1

您可以检查某些内容是否为空,如:

如果(obj==空){//做这个

}

所以像这样

if(varFirstName==null){varFirstName=“”;}

这将把firstName设置为空字符串

6
  • 嗨,Darren,我在我的两个var语句下面添加了您的建议。我添加了这个:if(varFirstName==null){varFirstName=“”
    – 劳伦
    评论 2012年10月24日19:50
  • 对不起,我输入太快了。我输入了名字Lauren,然后它仍然显示“null”,所以在我的全名框中它显示Lauren null。。。。。。我做错了什么?
    – 劳伦
    评论 2012年10月24日19:51
  • 它是否像大写字母N一样返回Null?如果是这样,那么看起来像是返回了一个字符串“Null”,因为Null对象的拼写都是小写的。请使用此选项:if(varLastName==null||varLastName==“null”){varLastName=“”;}-||表示“或” 评论 2012年10月24日19:57
  • 您还可以尝试检查未定义的。使用:if(varLastName未定义){varLastName=“”;} 评论 2012年10月24日20:02
  • 达伦,谢谢你的帮助。我采纳了杰夫的上述建议,效果很好,现在我看到你也提出了同样的建议。非常感谢你的帮助,我真的很感激。
    – 劳伦
    评论 2012年10月24日20:02
1

试试这个:

函数ShowFullName()var varFirstName=Xrm。Page.getAttribute(“lauren_firstname”).getValue();var varLastName=外部参数。Page.getAttribute(“lauren_lastname”).getValue();if(varFirstName==null ||varFirst Name.ToLower()==“null”){varFirstName=“”;}if(varLastName==null ||varLastName.ToLower()==“null”){varLastName=“”;}Xrm公司。Page.getAttribute(“lauren_name”).setValue(varFirstName+“”+varLastName);};
4
  • 杰夫!非常感谢你的帮助,我真的很感激。这很管用!对于像我这样的新人,有什么建议吗。我被推入了这个世界,我正在网上阅读,尽我所能去理解。我需要一个初学者指南。有什么建议吗?
    – 劳伦
    评论 2012年10月24日20:01
  • 对不起,@Lauren,我对JScript不太了解,碰巧我认识Xrm。Page.getAttribute将提供对Xrm的直接访问。Page.data.entity.attributes.get方法。 评论 2012年10月24日20:09
  • .To较低()真的有必要吗?如果不是的话无效的,它会变成吗无效的之后.To较低()? (我对xrm一无所知,但我确实知道js……) 评论 2012年10月24日21:00
  • 是的,它是必需的,因为它将返回字符串“Null”。为了让它更安全,这就是我补充的原因。到较低() 评论 2012年10月24日21:06

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.