2013-08-30 102 views
0

我試圖動態更新我的html,它工作到目前爲止,textarea被添加到頁面,但我已定義的onblur和onfocus行爲aren'因爲我認爲在onblur和onfocus屬性中包含雙引號。我的代碼如下:如何在使用jQuery時爲佔位符設置onblur和onfocus字符串

$('#answerList').append('<li><div class="row"><div class="eight columns"><textarea id="answerText" name="answerText" placeholder="Your answer here..." onfocus="this.placeholder = """ onblur="this.placeholder = "Your answer here...""></textarea></div><div class="four columns"><input type="checkbox" name="correctCheckbox" id="correctAnswerCheckbox' + answerPosition + '" value="' + answerPosition + '"/><label for="correctAnswerCheckbox' + answerPosition + '">Correct Answer</label></div></div></li>'); 

當剛剛編碼的HTML通常我使用以下命令:

<textarea id="questionText" name="questionText" placeholder="Your question here..." onfocus="this.placeholder = ''" onblur="this.placeholder = 'Your question here...'"></textarea> 

如何解決的JavaScript所以這些屬性的作用

+0

「佔位符」屬性與您定義的屬性相同。在焦點上,它的值變爲空和模糊,其值恢復相同。 –

+1

你爲什麼試圖改變佔位符焦點和模糊?佔位符屬性應該已經負責切換焦點和模糊的文本。 –

+0

是的,我知道它更多的做字符串形成真的,我在輸入HTML時使用單引號字符串,但當附加這是造成問題 – Jay

回答

2

「」(雙引號, )不能逃避''(單引號)。但是單引號可以避免雙引號。

在你的情況,我想如果你仍然需要轉義雙引號內指定的單引號,然後使用反斜槓()。

<textarea id="questionText" name="questionText" placeholder="Your question here..." onfocus="this.placeholder = \'\'" onblur="this.placeholder =\ 'Your question here...\'"></textarea> 

編碼快樂:)

+0

感謝這解決了編譯器的問題,但仍然無法追加到預期的textarea與指定的佔位符和行爲onfocus和onblur – Jay

+0

你可以只檢查這個「答案」,那麼這個問題可以從SO關閉,它會減少從這樣的開放性問題的數量:) – dreamweiver

+0

@jay:嗨可以你創建一個jsfiddle,我會檢查它。 HTTP://的jsfiddle。net – dreamweiver

0

如果我明白你的問題,這個字符串可以幫助你。

'<textarea id="questionText" name="questionText" placeholder="Your question here..." onfocus="this.placeholder = \'\'" onblur="this.placeholder = Your question here..."></textarea>' 

小提琴http://jsfiddle.net/aD38E/

+0

我一直無法使onfocus和onblur工作,當我動態地追加html時,我的字符串在html中的格式是正確的我想我仍然會出錯我的引號用於開始和onfocus結尾和onblur文本 – Jay

0

你是正確的,連續的雙引號的包容是問題。簡單的解決方法是用反斜槓轉義雙引號,像這樣:

onfocus="this.placeholder = \"\"" 

onblur="this.placeholder = \"Your answer here...\"" 

這裏有一個工作的jsfiddle:http://jsfiddle.net/ud36Y/

+0

此外,這裏是一個小提琴,以更多的jQuery友好的方式展示您的功能。這種編寫jQuery的方法也解決了你的多個嵌套引號問題。 http://jsfiddle.net/XZc4f/5/ –

+0

這不適用於IE10這是我的問題 – Jay

+0

這似乎在IE10中爲我工作;你能更具體地瞭解你的經歷嗎? –

0

或者您可以使用此代碼:

$('input[type="text"]').focus(function() { 
    $(this).data('placeholder', $(this).attr('placeholder')) 
     .attr('placeholder', ''); 
}).blur(function() { 
    $(this).attr('placeholder', $(this).data('placeholder')); 
}); 

// $('textarea') or $('input[type="email"]') 

相關問題