यह उपयोगकर्ता null
वापस नहीं करता है यदि उपयोगकर्ता ठीक है - यह एक खाली स्ट्रिंग वापस करेगा। आप शायद वापसी मूल्य का सही ढंग से परीक्षण नहीं कर रहे हैं। आप तीन अलग-अलग राज्यों के बीच वापसी का परीक्षण करना चाहते हैं, तो आप ऐसा कर सकते हैं इस तरह:
var oldVal = 'something';
var newVal = prompt("Enter new value:", oldVal);
if (newVal === "") {
// user pressed OK, but the input field was empty
} else if (newVal) {
// user typed something and hit OK
} else {
// user hit cancel
}
कार्य डेमो: http://jsfiddle.net/jfriend00/Kx2EK/
आपकी टिप्पणी पता चलता है कि आप परीक्षण करने के लिए इस कोड का उपयोग कर रहे परिणाम:
if(!newVal || oldVal == newVal)return false;
उपयोगकर्ता क्षेत्र को साफ करता है और ठीक दबाता है, तो newVal ""
(कोई रिक्त स्ट्रिंग) हो जाएगा। !newVal
true
होगा ताकि आप false
वापस कर सकें। एक खाली स्ट्रिंग एक झूठी मान है जैसे null
।
if (newVal === null || newVal === oldVal) {
// cancel button was hit
// or the same value was entered
return false;
}
कार्य इस तर्क के डेमो: http://jsfiddle.net/jfriend00/ynwBx/
नोट: मैं ===
उपयोग कर रहा हूँ किसी भी प्रकार के कास्टिंग करने से जावास्क्रिप्ट दुभाषिया को रोकने के लिए के रूप में मैं चाहता हूँ आप और अधिक स्पष्ट रूप से null
इस तरह की जांच करने की जरूरत है केवल null
के लिए स्पष्ट रूप से जांचें।
'prompt' वापस नहीं करता है शून्य जब इनपुट खाली है और ठीक दबाया जाता है; यह खाली स्ट्रिंग देता है। –