2012-03-21 28 views
7

Escape. Girilen metni veritabanında saklanana karşı kontrol eden ve değişiklikleri kaydetmek/iptal etmek isteyip istemediklerini soran bir onay penceresi açan bir javascript işlevim var.ColdFusion/JavaScript Bu sadece her nasılsa özlüyorum basit bir şey olacak biliyorum, ama burada gider Tek Teklif

Kullanıcı tarafından girilen metin tırnak işaretleri içeriyorsa (tek veya çift), javascript tamamen ölür. İçeriğin eşleşip eşleşmediğini kontrol etme yeteneğini korurken, alıntılardan kaçınmam gerekiyor.

Escape() ve replace() işlevlerini (tek tek ve birlikte) denedim, ancak hiçbir şey çalışmıyor.

Örnek javascript:

function change_question(){ 
    var feedback = document.getElementById('feedback').value; //this is what the user has entered on the page 
    var stored_feedback = "#trim(StoredFeedback)#"; //this is what is stored in the database; retrieved via ColdFusion 

    if (feedback != stored_feedback) { 
     if (confirm('You have unsaved data on the page. Do you wish to discard your changes?')) { 
      //go to next page 
     } 
    } 
    else { 
      //go to next page 
    } 
} 

teşekkürler.

+0

JSON kodlama yardımcı programı varsa, bunu kullanın. – Pointy

cevap

12

bir ColdFusion çözümü arıyorsanız JavaScript

var stored_feedback = "#jsStringFormat(StoredFeedback)#"; 
+0

Bu harika, teşekkürler Sam! Bir soru tho - bunu geri bildirim değişkeninde nasıl kullanabilirim (yani, kullanıcının girdiği şey nedir?) – shimmoril

+0

Düzenleme: Nevermind, bunu çözdüm: 'var feedback_string = document.getElementById ('feedback'). var feedback = #jsStringFormat ('feedback_string') #; – shimmoril

0

Ben ColdFusion biliyorum ama dokümanlara göre yoktur:

var stored_feedback = #SerializeJSON(trim(StoredFeedback))#; 

ben düşünmek JSON tefrika çift tırnak ile bitirmek gerekir ne zaman bir dize olarak açıkça tırnak eklemek gerekmez neyse. Yine, bunu kendim test edemiyorum.

+0

Yukarıdaki Hash karakterleri gereksizdir. –

+0

@DavidFaber gerçekten? ColdFusion, bunun JavaScript olarak değil, kodu olarak yorumlanması gerektiğini nasıl bilebilirdi? – Pointy

+2

Karma karakterler gerekli. Bence David, hedeflenen çizginin bir CF bağlamında olduğunu düşünüyordu, ama bu, clogutput –

0

için kaçacaktır jsStringFormat inşa, muhtemelen bu kullanmak isteyeceksiniz:

HTMLEditFormat(string) 

HTML kaçan dize dize. Dönüş karakterleri kaldırılır; satır besleme karakterleri korunur. HTML'deki özel anlamları olan karakterler, > gibi HTML karakterlerine dönüştürülür.

+0

Teşekkürler. DB'den gelen ve giden her şey HTMLEditFormat kullanıyor, ancak kullanıcı tarafından girilen (kaydedilmemiş) veriler gerçekten sorun oldu. – shimmoril

+0

HTML-çıkış, değer, JavaScript koduna gönderilecek olduğunda yararlı olmaz. – Pointy