PDA

View Full Version : ارسال پارامتر به یک تابع جاوا اسکریپت در code behind



sarapepors
سه شنبه 19 اردیبهشت 1391, 21:38 عصر
با سلام .


f TextBox_Search_Caption.Attributes.Add("onfocus", "return ClearText(TextBox_Search_Caption);");


function ClearText(id)
{

document.getElementById(id.ClientID).value='';
}
میخوام id مربوط به یک textbox رو به یک تابع جاوا اسکریپت بفرستم تا با کلیک موس در اون textbox متن داخلش پاک بشه میشه بگید کد صحیحش چیه ؟

d_derakhshani
سه شنبه 19 اردیبهشت 1391, 21:58 عصر
بنویسید:

document.getElementById("<%=textbox1.ClientID %>")

sarapepors
سه شنبه 19 اردیبهشت 1391, 22:29 عصر
سلام . مرسی از پاسختون این کد رو میدونم منتها میخوام textbox1 رو با پارمتر به تابعی که شامل این کد هست بفرستم میخوام بدونم در صورتی که textbox1 رو به عنوان پارامتر دریافت کنم اون موقع چطور باید در این کد قرارش بدم ؟و در ضمن کد اولی که نوشتم یعنی ارسال پارامتر صحیح هست یا خیر ؟
متشکرم

d_derakhshani
سه شنبه 19 اردیبهشت 1391, 23:20 عصر
از this باید استفاده کنید.

TextBox_Search_Caption.Attributes.Add("onfocus", "return ClearText(this);");

Leyla2011
چهارشنبه 20 اردیبهشت 1391, 19:35 عصر
یعنی به این صورت باید استفاده بشه؟؟

protected void Page_Load(object sender, EventArgs e)
{
TextBox_Search_Caption.Attributes.Add("onfocus", "return ClearText(this);");
}

,


<script type="text/javascript">


function ClearText(id)
{

document.getElementById(id.ClientID).value = '';
}
</script>

d_derakhshani
چهارشنبه 20 اردیبهشت 1391, 20:40 عصر
خیر. روش زیر غلطه. دقت کنید this خود شی هست. پس دیگه لازم نیست که از getElemetnbyId استفاده کنید. نکته بعدی clientId یک خصوصیت سروری هست و در کلاینت و جاوااسکریپت شناخته شده نیست.

<script type="text/javascript">
function ClearText(id) {
document.getElementById(id.ClientID).value = ''; }
</script>

روش درست:

<script type="text/javascript">
function ClearText(control) {
control.value = ''; } </script>

Leyla2011
چهارشنبه 20 اردیبهشت 1391, 21:26 عصر
خیر. روش زیر غلطه. دقت کنید this خود شی هست. پس دیگه لازم نیست که از getElemetnbyId استفاده کنید. نکته بعدی clientId یک خصوصیت سروری هست و در کلاینت و جاوااسکریپت شناخته شده نیست.

<script type="text/javascript">
function ClearText(id) {
document.getElementById(id.ClientID).value = ''; }
</script>

روش درست:

<script type="text/javascript">
function ClearText(control) {
control.value = ''; } </script>

مرسی از توضیحاتتون

کدوم روش بهتره؟
روش بالا

یا

<script type="text/javascript">
debugger
function ClearText()
{


document.getElementById("<%=txt.ClientID %>").value = '';
}
</script>
و
<asp:TextBox ID="txt" runat="server" Width="170px" onfocus="return ClearText()">sddafde rstrtrtwrt</asp:TextBox>

d_derakhshani
چهارشنبه 20 اردیبهشت 1391, 21:41 عصر
this قابلیت انعطاف بیشتری داره. در حالت استفاده از ClientID شما صرفا محدود به همون یک کنترل می شوید در حالی که this می تونه هر کنترلی(اینجا تکست باکس)باشه.یعنی با یک تابع هر کنترلی که بهش ارسال کنید متن اش رو خالی می کنه.
از لحاظ کارایی this بهتره اما این کارایی قابل تشخیص نیست.