مشكل اين كد چيه؟ :)

payel

Member
با سلام
من مي خواهم كه با انتخاب گزينه خير كامبو باكس غير فعال شود اما خطا ميگيره
لطفا اين فايل ضميمه شده را بررسي كنيد
<html>

<head>
<!------------------ Isar script -------------------------->
<SCRIPT language=javascript type=text/javascript>
function SubmitItIsar(form) {
doorOption = -1

if (form.no_is[1].value == "2" && form.isar.checked) {

return false
}
return true
}

function Isar(isarField) {
if (isarField.checked) {
for (i=0; i<document.form.no_is.length; i++) {
if (document.form.no_is.value == "0") {
document.form.no_is.disabled = true
}
}
}

if (form.no_is[1].value == "1" && form.isar.checked) {

return false
}
return true
}

function Isar2(isarField) {
if (isarField.checked) {
for (i=0; i<document.form.no_is.length; i++) {
if (document.form.no_is.value == "0") {
document.form.no_is.disabled = false
}

}
}

}


</SCRIPT>
<!------------------ Isar script -------------------------->
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>ايثارگر</title>
</head>

<body>

<table border="0" width="770" dir="rtl" cellpadding="5" style="border-collapse: collapse" height="90" bordercolor=#FFFFFF>
<tr>
<td class=td1 width="82" bgcolor="#FBF5F4">
<span lang="fa">ايثارگر</span></td>
<td class=td1 width="184" bgcolor="#FBF5F4">
بلی
<input type=radio name=isar value=1 onclick=Isar2(this);><span lang="fa">&nbsp;&nbsp;&nbsp;&nbsp;خير</span>
<input type=radio name=isar value=2 onclick=Isar(this);><span lang="fa">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></td>
<td class=td1 width="8" bgcolor="#FBF5F4">
&nbsp;</td>
<td class=td1 width="93" bgcolor="#FBF5F4">
<span lang="fa">نوع ايثارگري:</span></td>
<td class=td1 width="154" bgcolor="#FBF5F4">
&nbsp;<select size=1 name=no_is id=no_is>
<option value="0">انتخاب کنيد</option>
<option value="1">جانباز</option>
<option value="2">خانواده شهدا</option>
<option value="3">آزاده</option>
<option value="4">بسيجي فعال</option>
<option value="5">رزمنده</option>
</select><INPUT style="WIDTH: 0px; HEIGHT: 0px" type=radio name=no_is ></td>
</tr>
</table>

</body>

</html>
 

پیوست ها

  • java.txt
    2.2 کیلوبایت · بازدیدها: 5
آخرین ویرایش:

mazoolagh

Active Member
دوست عزيز لطف كن كدت رو بجاي ضميمه كردن داخل تگ Html همينجا قرار بده تا همه ببينن و وقتي راه حل مشكل رو هم ميبينن چيزي به اطلاعاتشون اضافه بشه.
 

ToFaN

Well-Known Member
mazoolagh گفت:
دوست عزيز لطف كن كدت رو بجاي ضميمه كردن داخل تگ Html همينجا قرار بده تا همه ببينن و وقتي راه حل مشكل رو هم ميبينن چيزي به اطلاعاتشون اضافه بشه.
فايل رو به صورت TXT هم داده ميتونيد به صورت HTML سيو كنيد مشكلي نداره
 

mazoolagh

Active Member
payel گفت:
لطفا يكي جواب بده
بايد از document.getElementsByName براي ارجاع به no_is استفاده كني!

HTML:
<html dir="rtl">

<head>
<!------------------ Isar script -------------------------->
      <SCRIPT language=javascript type=text/javascript>
function SubmitItIsar(form) {
doorOption = -1

if (document.getElementsByName("no_is")[1].value == "2" && document.getElementsByName("isar").checked) {

return false
}
return true
}

function Isar(isarField) {
	if (isarField.checked) {
		for (i=0; i<document.getElementsByName("no_is").length; i++) {
			if (document.getElementsByName("no_is")[i].value == "0") {
				document.getElementsByName("no_is")[i].disabled = true
				}
			}
		}

if (document.getElementsByName("no_is")[1].value == "1" && document.getElementsByName("isar").checked) {

return false
}
return true
}

function Isar2(isarField) {
	if (isarField.checked) {
		for (i=0; i<document.getElementsByName("no_is").length; i++) {
			if (document.getElementsByName("no_is")[i].value == "0") {
				document.getElementsByName("no_is")[i].disabled = false
				}

			}
		}

		}


    </SCRIPT>
<!------------------ Isar script -------------------------->
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>ايثارگر</title>
</head>

<body>
<form>
<table border="0" width="770" dir="rtl" cellpadding="5" style="border-collapse: collapse" height="90" bordercolor=#FFFFFF id="table1">
	<tr>
		<td class=td1  width="33" bgcolor="#FBF5F4">
		&nbsp;</td>
		<td class=td1  width="82" bgcolor="#FBF5F4">
		<span lang="fa">ايثارگر</span></td>
		<td class=td1  width="184" bgcolor="#FBF5F4">
		بلی
		<input onclick=Isar2(this);  type=radio name=isar value=1 ><span lang="fa">&nbsp;&nbsp;&nbsp;&nbsp;خير</span>
		<input onclick=Isar(this); type=radio name=isar value=2 ><span lang="fa">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
		</span></td>
		<td class=td1  width="8" bgcolor="#FBF5F4">
		&nbsp;</td>
		<td class=td1  width="93" bgcolor="#FBF5F4">
		<span lang="fa">نوع ايثارگري:</span></td>
		<td class=td1  width="154" bgcolor="#FBF5F4">
		&nbsp;<select size=1 name=no_is>
		<option value="0">انتخاب کنيد</option>
		<option value="1">جانباز</option>
		<option value="2">خانواده شهدا</option>
		<option value="3">آزاده</option>
		<option value="4">بسيجي فعال</option>
		<option value="5">رزمنده</option>
</select><INPUT style="WIDTH: 0px; HEIGHT: 0px" type=radio name="no_is" ></td>
		<td class=td1  width="78" bgcolor="#FBF5F4">
		&nbsp;</td>
	</tr>
	</table>
</form>
</body>

</html>
 
آخرین ویرایش:

mazoolagh

Active Member
ToFaN گفت:
فايل رو به صورت TXT هم داده ميتونيد به صورت HTML سيو كنيد مشكلي نداره
طوفان عزيز - بابت ذخيره كردن فايل ضميمه مشكلي نيست فقط اينجوري افرادي كه به اين تاپيك سر ميزنن نه ميفهمن اشكال چي بوده و نه ياد ميگيرن راه حلش چي هست! ميشه گفت تا حدي وقتشون تلف شده.
 

mazoolagh

Active Member
البته اين فرم رو ميشه هنوز بهينه كرد (از نظر طراحي و كد) - اگر مايل به اينكار هستي بگو تا توضيح بدم و اگر هم تا همين حد كفايت ميكنه كه مشكل شما حله!
 

payel

Member
تشكر

از راهنمايي شما ممنونم مشكل حل شد
براي بهينه كردن كد ويا طراحي آن خوشحال ميشم راهنمايي كنيد

با تشكر فراوان
 

aminir

Member
سلام مازولاق عزیز اگه اینجوری بنویسه چی؟؟
کد:
<html dir="rtl">

<head>
<!------------------ Isar script -------------------------->
      <SCRIPT language=javascript type=text/javascript>
function SubmitItIsar(form) {
doorOption = -1

if (form.no_is[1].value == "2" && form.isar.checked) {

return false
}
return true
}

function Isar(isarField) {
	if (isarField.checked) {
		for (i=0; i<document.form.no_is.length; i++) {
			if (document.form.no_is[i].value == "0") {
				document.form.no_is[i].disabled = true
				}
			}
		}

if (form.no_is[1].value == "1" && form.isar.checked) {

return false
}
return true
}

function Isar2(isarField) {
	if (isarField.checked) {
		for (i=0; i<document.form.no_is.length; i++) {
			if (document.form.no_is[i].value == "0") {
				document.form.no_is[i].disabled = false
				}

			}
		}

		}


    </SCRIPT>
<!------------------ Isar script -------------------------->
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>ايثارگر</title>
</head>

<body>
<form name="form">
<table border="0" width="770" dir="rtl" cellpadding="5" style="border-collapse: collapse" height="90" bordercolor=#FFFFFF id="table1">
	<tr>
		<td class=td1  width="33" bgcolor="#FBF5F4">&nbsp;
		</td>
		<td class=td1  width="82" bgcolor="#FBF5F4">
		<span lang="fa">ايثارگر</span></td>
		<td class=td1  width="184" bgcolor="#FBF5F4">
		بلی
		<input onclick=Isar2(this);  type=radio name=isar value=1 ><span lang="fa">&nbsp;&nbsp;&nbsp;&nbsp;خير</span>
		<input onclick=Isar(this); type=radio name=isar value=2 ><span lang="fa">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
		</span></td>
		<td class=td1  width="8" bgcolor="#FBF5F4">&nbsp;
		</td>
		<td class=td1  width="93" bgcolor="#FBF5F4">
		<span lang="fa">نوع ايثارگري:</span></td>
		<td class=td1  width="154" bgcolor="#FBF5F4">
		&nbsp;<select size=1 name=no_is>
		<option value="0">انتخاب کنيد</option>
		<option value="1">جانباز</option>
		<option value="2">خانواده شهدا</option>
		<option value="3">آزاده</option>
		<option value="4">بسيجي فعال</option>
		<option value="5">رزمنده</option>
</select><INPUT style="WIDTH: 0px; HEIGHT: 0px" type=radio name=no_is ></td>
		<td class=td1  width="78" bgcolor="#FBF5F4">&nbsp;
		</td>
	</tr>
	</table>
</form>
</body>

</html>
اینم درسته ها؟؟؟
بای
 

mazoolagh

Active Member
aminir گفت:
سلام مازولاق عزیز اگه اینجوری بنویسه چی؟؟
اینم درسته ها؟؟؟
بای

بله میشه - ولی بهترین راه ارجاع دادن به عناصر صفحه همون getElementById و getElementsByName است حتی اگر فرم اسم داشته باشه
 

mazoolagh

Active Member
payel گفت:
از راهنمايي شما ممنونم مشكل حل شد
براي بهينه كردن كد ويا طراحي آن خوشحال ميشم راهنمايي كنيد

با تشكر فراوان
ظاهرا هدف شما اينه كه تا وقتي شرط ايثارگر برقرار نباشه انتخاب نوع ايثارگري بسته باشه و اگر نوع ايثارگري مشخص شده باشه ديگه نميشه شرط ايثارگري رو برداشت و نوع رو مسدود كرد مگر اينكه نوع ايثارگري انتخاب نشده باشه.

براي رسيدن به اين هدف هم از عناصر اضافي استفاده شده و هم كد پيچيده و زايد.
راديو براي حالتي استفاده ميشه كه يا تعداد انتخابها از 2 بيشتر باشه يا اگر 2 انتخاب هست از هم مستقل باشن (مثلا انتخاب بين رنگ قرمز و آبي) ولي اينجا انتخاب بين 2 حالت بله يا خير داريم پس بايد از چك باكس استفاده بشه و نه راديو.
ضمنا منطقي كه شما در نظر گرفتين ايجاب ميكنه تا زماني كه شرط ايثارگري معين نشده نبايد انتخاب نوع باز باشه.
در كد پايين براي سادگي جدول و ... حذف شده و فقط عناصر و كد هست تا بهتر متوجه اين قضيه بشي:

HTML:
<html dir="rtl">
<head>
<SCRIPT language="javascript">
function Isar() {
	isar = document.getElementById("isar") ;
	no_is = document.getElementById("no_is") ;
	if (isar.checked) 
		no_is.disabled = false ;
	else if (no_is.selectedIndex == "0") 
			no_is.disabled = true ;
		else	
			isar.checked = true ;
}
</SCRIPT>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>ايثارگر</title>
</head>

<body>
<form>
	ايثارگر<input type="checkbox" name="isar" id="isar" onclick="Isar();">
	نوع ايثارگري:
	<select size=1 name="no_is" id="no_is" disabled="true">
		<option value="0">انتخاب کنيد</option>
		<option value="1">جانباز</option>
		<option value="2">خانواده شهدا</option>
		<option value="3">آزاده</option>
		<option value="4">بسيجي فعال</option>
		<option value="5">رزمنده</option>
	</select>
</form>
</body>
</html>

ولي موضوع به همينجا ختم نميشه! اين اطلاعات نهايتا در يك ديتابيس ذخيره ميشه و با اين طراحي شما فيلد زايد در ديتابيس داريد كه همون شرط ايثارگري است. يعني يكبار مشخص ميكنيد كه شخص ايثارگر هست يا و يكبار هم نوع ايثارگري رو مشخص ميكنيد. خوب اينكار از نظر اصولي نادرسته و شما ميتوني غير ايثارگري رو با مثلا كد 0 و انواع ايثارگري رو با كدهاي 1 و 2 و 3و ... مشخص كني.
پس با اين ديد اصلا مشخص كردن اينكه شخص ايثارگر هست زايد است و در همان نوع انتخاب ميشه اينكار رو انجام داد. بالطبع تمام كدهاي مربوط به اينكار هم حذف ميشن:
HTML:
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>ايثارگر</title>
</head>

<body>
<form>
	نوع ايثارگري:
	<select size=1 name="no_is" id="no_is">
		<option value="0" selected>غير ايثارگر</option>
		<option value="1">جانباز</option>
		<option value="2">خانواده شهدا</option>
		<option value="3">آزاده</option>
		<option value="4">بسيجي فعال</option>
		<option value="5">رزمنده</option>
	</select>
</form>
</body>
</html>
 

جدیدترین ارسال ها

بالا