2011-12-01 39 views

回答

6

是的,這是可以的。

的第二個參數prompt方法是可選(見"window.prompt on MDN")。根據ECMAScript規範(ECMA-262,第4.3.9節),將值爲undefined的變量賦予沒有賦值的變量。在prompt方法中,將第二個參數保留爲undefined還是將一個空字符串傳遞給它是沒有關係的:這兩個參數都會在提示中產生空字符串作爲默認值。

如果您想知道爲什麼這些信息在DOM標準(如W3C DOM)上不可用,答案是它是一種非標準的方法,它只是瀏覽器通常支持的(部分所謂的「DOM Level 0 「規格)。然而,即將到來的HTML 5可能會將提示(window.prompt)定義爲標準方法(請參閱"6.4 User prompts")。

+1

看到我的回答,'提示符'現在出現在(草案)規範中:HTML5,它不僅僅是HTML。 :-) –

+0

謝謝。非常好的一點! (爲你的答案+1) – jsalonen

+1

@ T.J。 Crowder:爲了完整性,我在HTML5上添加了關於我的答案的評論。再次感謝這個寶貴的發現! – jsalonen

3

documentation on MDC中,第二個參數被列爲可選項。

是一個字符串,其中包含文本輸入字段中顯示的默認值。 這是一個可選參數

+0

那麼,當沒有提供價值時會發生什麼?那麼它是否設置爲「undefined」?順便說一句,這個資源非常棒。 – helpermethod

+0

@OliverWeiler:不會設置佔位符文字。 – Matt

0

是的,這是有效的JavaScript。由於w3schools提到http://www.w3schools.com/jsref/met_win_prompt.asp它是可選的

+1

W3schools在某些部分有大量錯誤 - 對於JS的東西,我建議使用MDN來代替:https://developer.mozilla.org/en/DOM/window.prompt –

+2

當然這是正確的,但[w3schools不是真的權威](http://w3fools.com/)。 – Roman

+0

更好的是,如何使用規範? –

3

是,第二個參數是可選的according to the HTML5 spec(我們目前必須的promptalert和這樣的規範是最接近):

prompt(message, default)方法被調用時,必須釋放存儲互斥體,秀給用戶的給定消息,並要求用戶以字符串值作爲響應或中止。隨着方法等待用戶的響應,用戶代理程序必須暫停。 第二個參數是可選的。如果存在第二個參數(default),則響應必須默認爲默認值。如果用戶中止,則該方法必須返回null;否則,該方法必須返回用戶響應的字符串。

(我的重點)

3

我認爲答案是「是」,直到我只是看到,在IE7,這將產生具有「未定義」在輸入框中預填充代替。在IE7中快速試用一下JSFiddle:http://jsfiddle.net/ALw6r/

編輯:從評論看來,這似乎也是在IE8中破解的。

+0

+1 Thx的提示! – helpermethod

+1

其實IE8也是如此。 –

+0

感謝Maciej,更新了答案...... :-) – Gijs

相關問題