如何在使用jQuery时为占位符设置onblur和onfocus字符串

时间:2013-08-30 13:32:48

标签: javascript jquery string append

我已经尝试动态更新我的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以便这些属性正常工作

4 个答案:

答案 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>'

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

答案 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"]')