开发者

How to enable javascript in asp.net webforms

i am trying to use javascript events in asp.net webforms. but events for input controls like textfield, such as onClick, onFocus,onBlur, dont appear. do i need to change my directive:

<%@ Page Title="" Language="C#" MasterPageFile="~/YourGuruMaster.master" AutoEventWireup="true" CodeFile="AskQuestion.aspx.cs" Inherits="AskQuestion" %>

i want to be able to do this:

//code page
    protected void Page_Load(object sender, EventArgs e)
{
    QuestionTextBox1.Attributes["onfocus"] = "ClearSearchText()";

//Markup page
     function ClearSearchText() {
        var searchUserName = document.getEle开发者_Python百科mentById('<%=QuestionTextBox1.ClientID%>');

        if (searchUserName.value = searchUserName.defaultValue) {
            searchUserName.value = "";
        }


        return false;
    }

<p dir="rtl" style="">
<asp:TextBox ID="QuestionTextBox1" runat="server" Width="702px" 

Text="פרטים עד 5000 תווים"></asp:TextBox>


Add onfocus and onblur into the markup as follows:

<asp:TextBox ID="TextBox1" runat="server" onfocus="TextBox1_focus(this, event)" onblur="TextBox1_blur(this, event)" Text="Search..."></asp:TextBox>

<script type="text/javascript">
    var searchText = 'Search...';

    function TextBox1_focus(sender, e) {
        if (sender.value == searchText)
            sender.value = '';
    }

    function TextBox1_blur(sender, e) {
        if (sender.value == '')
            sender.value = searchText;
    }
</script>


Well, not sure which ASP.NET version you use. I think last versions allow this (rendering attributes that the server controls don't understand to the browser still). Try using "onfocus" instead (lower case).

However, if this is not working for you, then you have to do it from code behind...

protected void Page_Load(object sender, EventArgs e)
{
    QuestionTextBox1. Attributes["onfocus"]="someJavaScriptMethod";
}

Alternatively, if you have jQuery in the page you can go something like ...

<script type="text/javascript">
$(function() {
    $('#<%= QuestionTextBox1.ClientID %>').focus(someJavaScriptMethod);
});
</script>

If you do that, inside someJavaScriptMethod(), you can use the word this to point at the focused control, and you can create a jQuery object from it easily like $(this).

.

Please leave me a comment if none of the above solves your problem.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜