2011-11-10 9 views
13

अंदर मैं निम्नलिखित हैजावास्क्रिप्ट - की पुष्टि() एक jQuery .click() फ़ंक्शन

$("element").click(function() { 
    var foo=bar; 
    if (foo == "bar") { 
    confirm('Dialogue'); 
    } 
}); 

लेकिन मैं इस बात की पुष्टि समारोह bool करना चाहते हैं। मैंने पहले से ही

$("element").click(function() { 
    var foo=bar; 
    if (foo == "bar") { 
    var confirm=confirm('Dialogue'); 
    if (confirm==true) { 
     alert('true'); 
    } else { 
     alert('false'); 
    } 
    } 
}); 

लेकिन कोई पुष्टिकरण बॉक्स उत्पन्न नहीं हुआ है। मैं यह कैसे हासिल कर सकता हूं?

+0

'(इस बात की पुष्टि = true)' होना चाहिए '(पुष्टि == सच)' या '(पुष्टि)' भी क्या इस संदर्भ में बार है 'वर foo = bar' –

उत्तर

20

आपके पास कुछ समस्याएं हैं। पहला मुद्दा यह है कि आप confirm नाम के साथ एक चर परिभाषित कर रहे हैं। अच्छा नही! इसे isGood या कुछ और नाम दें।

अन्य बग यहीं है:

if (confirm=true) { 

confirm=true काम, नहीं एक तुलना है।

यह

if (confirm==true) { 

या सिर्फ

if (confirm) { 

तो अपने कोड होगा होने की जरूरत है

var bar = "bar"; 
$("button").click(function() { 
    var foo=bar; 
    if (foo == "bar") { 
    var isGood=confirm('Dialogue'); 
    if (isGood) { 
     alert('true'); 
    } else { 
     alert('false'); 
    } 
    } 
}); 
+0

बेवकूफ मैं और मेरी नोब टाइपिंग त्रुटियां। ऐसा इसलिए था क्योंकि पुष्टि == सत्य की बजाय मुझे पुष्टि = सत्य था। =/ – Mechaflash

1

की तरह कुछ कोशिश

if (confirm) { 
     alert('true'); 
    } else { 
     alert('false'); 
    } 
0

मेरे प्रारंभिक हालांकि अपने मुख्य समस्या यहाँ

var foo=bar; 
    if (foo == "bar") { 

बार क्या है झूठ है? मेरा मानना ​​है कि आप निम्नलिखित असाइनमेंट var foo="bar"; बनाने का इरादा रखते हैं जो if स्टेटमेंट को सत्य के रूप में मूल्यांकन करेगा और आपके पुष्टिकरण संवाद को निष्पादित करेगा।

इसके अलावा निम्नलिखित में गलत है

var confirm = confirm("dialog"); 
if (confirm=true) 

सिर्फ इस का उपयोग करें:

if (confirm("dialog")) 
+0

हे? एक var == स्ट्रिंग करते समय, स्ट्रिंग हमेशा उद्धरणों से घिरा हुआ होता है (या तो उपयोग के आधार पर सिंगल या डबल) या अन्यथा इसे स्ट्रिंग के बजाय चर के रूप में मूल्यांकन किया जाता है। तो नहीं, यह foo = "bar" के रूप में नहीं लिखा जाएगा। लेकिन आपका दूसरा भाग सच है। -1 +1 – Mechaflash

5

तुलना के बारे में टिप्पणी के सभी कर रहे हैं सही है, तथापि, कारण की पुष्टि संवाद नहीं दिखा रहा है वह यह है कि आप पुष्टिकरण बॉक्स ऑब्जेक्ट को मिटा रहे हैं।

confirm var का नाम बदलें।

$(element).click(function() { 
    var confirm1 = confirm('Dialogue'); 
    if (confirm1) { 
    alert('true'); 
    } else { 
    alert('false'); 
    } 
}); 

http://jsfiddle.net/xjGZj/

है कि यह एक करने के लिए जो काम नहीं करता है की तुलना करें।

$(element).click(function() { 
    var confirm = confirm('Dialogue'); 
    if (confirm) { 
    alert('true'); 
    } else { 
    alert('false'); 
    } 
}); 

5

जब आप अपने समारोह में कहीं भी एक चर घोषित, यह स्वतः ही एक स्थानीय चर के रूप में शीर्ष करने के लिए "खींचा" हो जाता है। जब आप फ़ंक्शन के रूप में पुष्टि करते हैं, तो यह स्थानीय चर पहले (जिसे अभी तक परिभाषित नहीं किया गया है) पाता है और यह स्कोप चेन window पर नहीं जाता है जहां फ़ंक्शन रहता है।

$("element").click(function() { 
    var foo=bar; 
    if (foo == "bar") { 
    var confirm=confirm('Dialogue'); 
    if (confirm==true) { 
     alert('true'); 
    } else { 
     alert('false'); 
    } 
    } 
}); 

$("element").click(function() { 
    var foo=bar, confirm = undefined; 
    if (foo == "bar") { 
    confirm=confirm('Dialogue'); 
    ... 
}); 

रूप में ही है आप 1) अपने चर, 2) फोन window.confirm("Dialog") यह कह आप स्थानीय चर के बजाय वैश्विक समारोह चाहते हैं या 3) बस की पुष्टि कॉल डाल नाम बदलने सकता है एक अगर

$("element").click(function() { 
    var foo=bar; 
    if (foo == "bar") { 
    if (confirm('Dialogue')) { 
     alert('true'); 
    } else { 
     alert('false'); 
    } 
    } 
}); 
10
if(!confirm('Are you sure you want to continue?')) { 
        return false; 
    } 
0

अंदर एक तत्व टी करने के लिए .confirm कक्षा जोड़ें jQuery में मुर्गी बारे में ..

$('.confirm').click(function() { 

    return confirm("Are you sure?"); 

}); 
संबंधित मुद्दे