View Full Version : نمایش یک پیغام در صورت درست بودن شرط
zahraf
دوشنبه 01 اسفند 1390, 00:21 صبح
با سلام
من می خواهم یک پیغام (alert) در برنامه ام بذارم که اگر textbox1 خالی نبود با زدن یک دکمه اون پیغام به کاربر نمایش داده بشه متاسفانه هیچی هم از جاوااسکریپ بلد نیستم:ناراحت:
چی جوری این کارو بکنم؟
ممنون
behrad110
دوشنبه 01 اسفند 1390, 00:35 صبح
معمولا وقتی textbox خالیه پیغام میدن . عجیبه که شما عکسش رو میخواین
به هر حال کدش اینه
var textbx = document.getElementById("Text1").value;
if (textbx != "")
{alert("it is not empty ");}
zahraf
دوشنبه 01 اسفند 1390, 01:00 صبح
این Text1 آی دی همون تکست باکسمون هست دیگه؟
این کد که خطا میده:افسرده:
behrad110
دوشنبه 01 اسفند 1390, 01:03 صبح
مگه میشه واسه شما ارور بده واسه من نده. از اون حرفا بود ها.
بله text1 تکست باکس html هست
zahraf
دوشنبه 01 اسفند 1390, 01:03 صبح
البته من این کد در یک فانکشن در بالای صفحه در تگ <script> میذارم و در قسمت "()OnClientClick="Sabrfunc اونو همین جوری که نوشتم صدا میزنم
به جون خودم خطا میده :ناراحت:
این خطا:
Microsoft JScript runtime error: Object required
fakhravari
دوشنبه 01 اسفند 1390, 01:10 صبح
<script type="text/javascript">
function alertMe1() {
var textbx = document.getElementById("TextBox1").value;
if (textbx == "") {
alert('نام کاربری و پسورد را وارد کنید');
}
}
function alertMe() {
alert('نام کاربری و پسورد صحیح نمی باشد');
}
</script>
public static void MessageBox(string Text, Page thispage)
{
thispage.ClientScript.RegisterStartupScript(thispa ge.GetType(), "msg", "window.alert('" + Text + "');", true);
}
public static void MessageScript(string function, Page thispage)
{
thispage.ClientScript.RegisterStartupScript(thispa ge.GetType(), "msg", function, true);
}
برای مثال
برای اجرای اسکریپت
MessageScript("alertMe1();", this);
برای پیغام
MessageBox("alertMe();", this);
behrad110
دوشنبه 01 اسفند 1390, 01:10 صبح
آخه چیز پیچیده ای نیست که خطا بده .کل کد aspx ات رو بذار ببینم کجا اشتباه کردی
اجرا میشه این هم عکسش
zahraf
پنج شنبه 04 اسفند 1390, 01:31 صبح
اینترنتم خراب بود نتونستم ادامه بدم
به این قسمت از کد ایراد میگیره و همون خطایی که گفتم رو نشون میده
var textbx = document.getElementById("TextBox1").value;
خواهش میکنم اگر کسی میدونه چرا اینجوری میشه بگه:ناراحت:
Rohollaes
پنج شنبه 04 اسفند 1390, 09:21 صبح
احتمالا textbox رو داخل یه شی دیگه گذاشتی.
ClientIDMode = Static مربوط به کنترل textbox رو Static قرار بده
zahraf
یک شنبه 07 اسفند 1390, 20:22 عصر
احتمالا textbox رو داخل یه شی دیگه گذاشتی.
ClientIDMode = Static مربوط به کنترل textbox رو Static قرار بده
اصلا اين صفت رو پيدا نكردم!
من تكست باكسم مال asp هست نه html و اونو درون يك پنل اژكس قرار دادم به دلايلي نميتونم از html استفاده كنم :ناراحت:
fakhravari
یک شنبه 07 اسفند 1390, 20:34 عصر
چرا خودتو اذیت میکنی؟
public static void MessageBox(string Text, Page thispage)
{
thispage.ClientScript.RegisterStartupScript(thispa ge.GetType(), "msg", "window.alert('" + Text + "');", true);
}
public static void MessageScript(string function, Page thispage)
{
thispage.ClientScript.RegisterStartupScript(thispa ge.GetType(), "msg", function, true);
}
با این میشه 2 کارو اجراع کرد.
برای چاپ یه مسیج کافی بنویسی
MessageBox("شما در امتیاز دهی این مطلب شرکت کرده اید", this);
zahraf
یک شنبه 07 اسفند 1390, 20:46 عصر
منظورتون اينه كه تابع MessageBox رو در قسمت cs. بنويسم و با فراخواني اين شكلي:
MessageBox("شما در امتیاز دهی این مطلب شرکت کرده اید", this);
در قسمت OnClientClick ؟
fakhravari
یک شنبه 07 اسفند 1390, 21:36 عصر
اره ولی اون تابع اول بنویس بعد از مسیج استفاده کن
در CodeBahin میتونید دسترسی داشته باشید.
در پست 6 شما میتونید در html با فراخونی alertMe() اونو اجرا کنید.
zahraf
دوشنبه 08 اسفند 1390, 15:15 عصر
یواش یواش دارم دیوودنه میشم :گیج:
این کد هم کلی خطا میده
اجازه بدین کاملا شرح بدم چیکار کردم و اگر کسی میتونه کمکم کنه خدا خیرتون بده!:قلب:
وب سایت من یک قابلیت ارسال کامنت داره که با اژکس ساخته شده و طرف سؤالشو میپرسه یا نظرشو میده به دلیل اینکه تعداد سؤالات بسیار زیاده مدت زمان زیادی طول میکشه تا نظر طرف ثبت شه و برای همین افراد ده بار پشت سرهم کامنت رو تکرار میکنند (کاربر باید بتونه بیش از یک سؤال بپرسه ) برای رفع این مشکل میخوام یک پیغامی چیزی بذارم که به کاربر بگه صبر کن!
البته در صورتی که کامنتش خالی نباشه و بعد از نشون دادن این پیام محتویات کامنت که در تکست باکس asp هست به اسم Textcomment به سمت سرور بره و در دیتابیس ذخیره شه!
خوب حالا تا اینجا مشکلم بود و اما کاری که کردم اینه:
طبق فرموده ی آقای fakhravari من در قسمت بالای صفحه ی default.aspx ام (که از مسترپیج هم استفاده میکنه) این تابع رو اضافه کردم:
<script type="text/javascript">
function Sabr()
{
var textbx = document.getElementById("Textcomment").value;
if (textbx != "")
{alert('لطفا صبر کنید ');}
}
</script>
از طرفی در قسمت کد صفحه ی وبم این تابع رو نوشتم:
public static void MessageScript(string function, Page thispage)
{
thispage.ClientScript.RegisterStartupScript(thispa ge.GetType(), "msg", function, true);
}
و در رویداد کلیک دکمه ام قبل از اینکه محتویات Textcomment رو در دیتابیس ذخیره کنم تابع بالا رو به این صورت فراخوانی کردم:
MessageScript("Sabr();", this);
(در پست قبلی پرسیدم که باید این فراخوانی رو در رویداد onclientclick نوشت و گفتند بله اما وقتی نوشتم به پرانتزگذاری ایراد میگرفت پس در قسمت کد صفحه ام گذاشتم)
حالا ایرادی که میگیره اینه که وقتی صفحه رو ران میکنم قبل از اینکه هیچ دکمه ای رو فشار بدم سه تا خطا میگیره اینجوری:
Microsoft JScript runtime error: Object doesn't support this action
اونم در قسمت فایلهای readonly که بهشون دسترسی ندارم
و اگر هم خطا نده اصلا اون پیغام رو نشون نمیده!!!
لطفا اگر کسی راه حل دیگری هم برای مشکلم داره بگه ممنون میشم تو اینترنت گشتم یه چیزایی در مورد thread ها پیدا کردم اما پیچیده بود نفهمیدم:افسرده:
اگر کسی میتونه در مورد پارامترهای تابع RegisterStartupScript هم توضیح بده که چیند کمک بزرگی کرده مرسی.
fakhravari
دوشنبه 08 اسفند 1390, 16:53 عصر
<script type="text/javascript">
function Sabr1() {
var textbx = document.getElementById("DropDownList1").value;
if (textbx != "")
{ alert('ارسال شد '); }
}
</script>
<asp:Button ID="Button2" runat="server" OnClientClick="Sabr();" onclick="Button2_Click" Text="Button" />
protected void Button2_Click(object sender, EventArgs e)
{
Response.Write("insert");
یا
MessageScript("Sabr1();", this);
}
شما میخواهید اول یه مسیج بده بعد نمایش بده یا کدی درج کنه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.