将 onfocus 和 onblur 函数替换或添加到 jQuery 函数中的文本框

本文关键字:函数 jQuery 文本 onfocus onblur 替换 添加 | 更新日期: 2023-09-27 18:34:01

我有一个文本框,它有一个文本值,并附加了对焦和onblur功能,使文本消失并在单击或关闭它时出现......

附加到文本框的模糊和对焦功能是...

function feedbackTextBoxFocus(textFieldObject, initialText) {
if (textFieldObject) {
    if (textFieldObject.value == initialText)
        textFieldObject.value = '';
}
}
function feedbackTextBoxBlur(textFieldObject, initialText) {
if (textFieldObject) {
    if (textFieldObject.value == '')
        textFieldObject.value = initialText;
}
}

文本框是...

<asp:TextBox ID="TxtAskQuestionTitle" runat="server" CssClass="KBTopQuestionTitleTextbox" Text="Ask a question on this topic..." onblur="feedbackTextBoxBlur(this,'Ask a question on this topic...')" onfocus="feedbackTextBoxFocus(this,'Ask a question on this topic...')" />

我想通过我拥有的 jquery 方法做的是,当单击文本框时,该方法使内容区域向下滑动,是更改文本框中的文本,并将 onblur 和 onfocus 值更改为"为您的问题提供标题...">

$(function () {
$('.QuestionContentExpandClick').click(function () {
    /**** Slide the content div ****/
    var viewContent = $('#DivExpandQuestionContentArea');
    viewContent.slideDown('slow', function () {
        //  If logged in and sliding the content area down
        //  the title box message changes
        var titleTextbox = $('#TxtAskQuestionTitle');
        titleTextbox.val('Provide a title for your question...');
        //titleTextbox.attr('onfocus', feedbackTextBoxFocus(this,'Provide a title for your question...'));
        //titleTextbox.attr('onblur', feedbackTextBoxBlur(this, 'Provide a title for your question...'));
    });
});
});

如您所见,我可以更改文本框中的文本值,但找不到更改 onblur 和 onfocus 功能的方法,任何人都可以帮我解决这个问题吗?提前非常感谢!

将 onfocus 和 onblur 函数替换或添加到 jQuery 函数中的文本框

如果在放置回调函数时使用括号,则不是传递引用,而是在执行函数。此外,您只想使用.focus().blur()功能。尝试如下:

titleTextbox.focus(function() {
    feedbackTextBoxFocus(this,'Provide a title for your question...');
});
titleTextbox.blur(function() {
    feedbackTextBoxBlur(this, 'Provide a title for your question...');
});