我已经尝试动态更新我的html并且它到目前为止工作正在将textarea添加到页面中但是我已经定义的onblur和onfocus行为不是因为我认为包含双引号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 :(得分:2)
“”(双打引语)无法逃脱''(单引号)。但单引号可以逃脱双引号。
在你的情况下,我猜你是否仍然想要转义双引号内指定的单引号然后使用反斜杠()。
<textarea id="questionText" name="questionText" placeholder="Your question here..." onfocus="this.placeholder = \'\'" onblur="this.placeholder =\ 'Your question here...\'"></textarea>
快乐编码:)
答案 1 :(得分:0)
如果我理解了你的问题,这个字符串可能对你有帮助。
'<textarea id="questionText" name="questionText" placeholder="Your question here..." onfocus="this.placeholder = \'\'" onblur="this.placeholder = Your question here..."></textarea>'
答案 2 :(得分:0)
你是正确的,包含连续的双引号是个问题。简单的解决方法是使用反斜杠转义双引号,如下所示:
onfocus="this.placeholder = \"\""
或
onblur="this.placeholder = \"Your answer here...\""
这是一个有效的JSFiddle:http://jsfiddle.net/ud36Y/
答案 3 :(得分: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"]')