484
צפיות
צפיות
12
תשובות
תשובות
כפתור שליחת נתונים…
יש לי כפתור ששולח הודעה לפורום, הנה הקוד:
<input border="0" src="images/add.gif" name="I1" type="image">
איך אני יכול לעשות שאי אפשר יהיה ללחוץ על הכפתור איזה 20 פעמים רצוף ואז להציף את הפורום? יש אולי איזה ג'אווה סקריפט?
אין לי מושג איך לפתור את זה.
המון תודה לכם מהפפר
12 תשובות
כל כך פשוט שתרצה להרביץ לעצמך
על זה שלא חשבת על הפתרון לבד:
צור לך משתנה בוליאני (true/false) כללי בסקריפט. נקרא לו boolMsgSent, לצורך הדוגמא. בלחיצה על הכפתור תבדוק אם הוא מכיל false או true.
אם הוא מכיל false – עוד לא נעשה נסיון שליחה, אפשר אותה, ושנה את הערך שלו ל true. אם הוא מכיל true – הרי שכבר נעשה נסיון שליחה אחד לפחות, ולכן פשוט לא תאפשר עוד אחד.
נשמע פשוט אבל…
לעשות את זה בג'אווה סקריפט?
איפה אפשר ללמוד על איך לישות את זה?
אין לי כל כך מושג איפה להתחיל.
ככה
הטופס
<form method=post action="bla.asp" onsubmit="return f()">
הפונק'
<script language="JavaScript">
var bSendedFlag=false
function f(){return (!bSendedFlag)}
</script>
זה לא עובד לי…
זו הפונקצייה שאני שולח אליה עם התוספת שנתתם לי:
<script language="javascript">
function FncSubmit()
{
var bSendedFlag=false
var name=document.FrmAdd.name.value;
if (name=="")
{
alert("àðà îìà àú ùîê")
document.FrmAdd.name.focus()
return false
}
return (!bSendedFlag)
}
</script>
וככה נראה הטופס:
<form name=FrmAdd action=add.asp method=post onsubmit="return FncSubmit()">
מה פיספסתי?
תודה
הגדרת המשתנה
צריכה להיות מחוץ לפונק'.
ייאוש, זה מסרב לעבוד לי…
זה מה שעשיתי עכשיו:
<script language="javascript">
var bSendedFlag=false
function FncSubmit()
{
var name=document.FrmAdd.name.value;
if (name=="")
{
alert("àðà îìà àú ùîê")
document.FrmAdd.name.focus()
return false
}
return (!bSendedFlag)
}
</script>
למה זה לא עובד? מה הבעייה פה?
אשמתי, לא שיניתי את ערך המשנה.
ככה
<script language="javascript">
var bSendedFlag=false
function FncSubmit()
{
var name=document.FrmAdd.name.value;
if (name=="")
{
alert("àðà îìà àú ùîê")
document.FrmAdd.name.focus()
return false
}
bSendedFlag=true
return (!bSendedFlag)
}
</script>
מוזר, עכשיו לא קורה כלום כשלוחצים..
על כפתור הוסף הודעה.
פשוט אי אפשר ללחוץ על הכפתור – מופיע כלינק אבל כלום לא קורה.
למה להסתבך???
כאן במדריך של DHTML יש הסבר לאיך לעשות שיתוק של Input ע"י התכונה disable כך :::
<form method=post action="bla.asp" id="formi">
<input border="0" src="images/add.gif" name="I1" type="image" onClick="f('I1','formi')">
והפונק'
function f(name,FormName){
document.FormName.name.disabled=true
}
גם לא עובד, הנה הקוד…
<script language="javascript">
function FncSubmit()
{
var subject=document.FrmAdd.subject.value;
if (subject=="")
{
alert("àðà ä÷ìã ðåùà ìäåãòä")
document.FrmAdd.subject.focus()
return false
}
document.FrmAdd.I1.disabled=true
}
</script>
לא משפיע על הכפתור בכלל.
נסה ככה
<script language="javascript">
var bSendedFlag=false
function FncSubmit()
{
var name=document.FrmAdd.name.value;
if (name=="")
{
alert("àðà îìà àú ùîê")
document.FrmAdd.name.focus()
return false
}
if(!bSendedFlag){
bSendedFlag=true
return true;
}else return false;
}
</script>
ייישששש!!!!! עובד, – תודה רבה לכם!!
במיוחד לילדה בלבן שם…