好的以这种方式调用prompt()?

时间:2011-12-01 11:18:32

标签: javascript

以这种方式打电话提示是否可以:

  prompt('Enter your text here');

而不是:

  prompt('Enter your text here', '');

即。没有传递建议的输入?

5 个答案:

答案 0 :(得分:6)

是的,没关系。

prompt方法的第二个参数是可选(请参阅"window.prompt on MDN")。 根据ECMAScript规范(ECMA-262,第4.3.9节),undefined的值被赋予一个没有赋值的变量。在prompt方法中,将第二个参数保留为undefined或将空字符串传递给它都无关紧要:两者都会导致空字符串作为提示中的默认值。

如果您想知道为什么这些信息不适用于W3C DOM这样的DOM标准,答案是它是一种非标准方法,“只是”浏览器通常支持(部分所谓的“ DOM Level 0“spec”。但是,即将推出的HTML 5可能会将提示符(window.prompt)定义为标准方法(请参阅"6.4 User prompts")。

答案 1 :(得分:3)

documentation on MDC中,第二个参数列为可选项。

  

value 是一个字符串,包含文本输入字段中显示的默认值。 这是一个可选参数

答案 2 :(得分:3)

是的,第二个参数是可选的according to the HTML5 spec(我们目前最接近的是promptalert等规范:

  

prompt(message, default)方法在调用时必须释放存储互斥锁,向用户显示给定的消息,并要求用户使用字符串值进行响应或中止。然后,当方法等待用户的响应时,用户代理必须暂停。 第二个参数是可选的。如果存在第二个参数(default),则必须将响应默认为默认值。如果用户中止,则该方法必须返回null;否则,该方法必须返回用户响应的字符串。

(我的重点)

答案 3 :(得分:3)

我认为答案是'是',直到我在IE7中看到,这将导致在输入框中预填充'undefined'。使用快速JSFiddle在IE7中自行尝试:http://jsfiddle.net/ALw6r/

编辑:从评论中看来,这似乎也在IE8中被打破了。

答案 4 :(得分:0)

是的,这是有效的JavaScript。正如w3schools在http://www.w3schools.com/jsref/met_win_prompt.asp上提及它是可选的