PDA

View Full Version : مشکل در غیر فعال نمودن button هنگام کلیک و انجام postback



elmira_63
یک شنبه 19 تیر 1390, 09:53 صبح
با سلام
توی برنامم یه صفحه دارم که یه سری اطلاعات از کاربر می گیره و با زدن دکمه ثبت اطلاعات رو ثبت می کنه و با کد زیر هم تا زمانی که postback تمام نشده است کلید رو غیر فعال می کنه


function

disableBtn(btnID, newText)

{


var btn = document.getElementById(btnID);

setTimeout(
"setImage('"+btnID+"')", 10);

btn.disabled =
true;

btn.value = newText;

}


function setImage(btnID)

{


var btn = document.getElementById(btnID);

btn.style.background =
'url(~/Image/Button/Submit1.gif)';

}

با زدن این کلید چند تا RequiredFieldValidator چک می کنه که یه سری فیلد ها پر شده باشه حالا مشکلی که هست اینه که اگه یکی از این فیلد های اجباری وارد نشده باشه کلید غیر فعال می شه و مجدد فعال نمی شه

elmira_63
یک شنبه 19 تیر 1390, 14:58 عصر
دوستان راه حلی در این باره ندارند؟ این سوال قبلا هم در تالار مطرح شده ولی به جواب نرسیده ؟
چطور میشه با زدن یک دکمه ابتدا چک کرد که کاربر اطلاعات را وارد کرده (توسط validator ها) یا نه سپس توسط کد بالا اگر اطلاعات را کامل وارد کرده بود کلید مورد نظر تا زمان انجام postback غیر فعال باشد

Himalaya
یک شنبه 19 تیر 1390, 19:05 عصر
سلام

چطور میشه با زدن یک دکمه ابتدا چک کرد که کاربر اطلاعات را وارد کرده (توسط validator ها) یا نه سپس توسط کد بالا اگر اطلاعات را کامل وارد کرده بود کلید مورد نظر تا زمان انجام postback غیر فعال باشد
به صورت زیر عمل کنید

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function disableBtn(btnID, ValGroup) {
if (Page_ClientValidate(ValGroup)) {
var btn = document.getElementById(btnID);
btn.setAttribute('disabled', 'disabled');
btn.setAttribute('value', 'wait ...');
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*"
ControlToValidate="TextBox1" ValidationGroup="Group1"></asp:RequiredFieldValidator>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="Group1"
OnClientClick="disableBtn(this.id,'Group1');" UseSubmitBehavior="False" />
</div>
</form>
</body>
</html>

elmira_63
دوشنبه 20 تیر 1390, 07:28 صبح
KARAJIE عزیز ممنون کارمو راه انداختی

elmira_63
سه شنبه 21 تیر 1390, 11:06 صبح
سلام

به صورت زیر عمل کنید

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function disableBtn(btnID, ValGroup) {
if (Page_ClientValidate(ValGroup)) {
var btn = document.getElementById(btnID);
btn.setAttribute('disabled', 'disabled');
btn.setAttribute('value', 'wait ...');
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*"
ControlToValidate="TextBox1" ValidationGroup="Group1"></asp:RequiredFieldValidator>
<br />
<br />
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="Group1"
OnClientClick="disableBtn(this.id,'Group1');" UseSubmitBehavior="False" />
</div>
</form>
</body>
</html>

من از این کد استفاده کردم ، روی سیستم خودم بر روی هر مرورگری امتحان کردم جواب داد ولی وقتی سایتم رو upload کردم روی هاست حالا این دکمه ها توی IE 9 جواب نمیدن یعنی هیچ عکس العملی از خودشون نشون نمیدن ولی با IE 8 مشکلی نداره با مرورگرای دیگه هم همین طور
جالب اینجاست که با همون مرورگری که روی سیستم خودم این دکمه ها کار می کرد وقتی upload می شه روی هاست با همون مرورگر جواب نمیده
یعنی اگه از تنظیمات مرورگر بود بایست وقتی روی سیستم خودم هم اجراش میکردم جواب نمی داد .

elmira_63
چهارشنبه 22 تیر 1390, 07:20 صبح
تنظیمات IE9 رو ریست کردم حل شد