PDA

View Full Version : سوال: اسکریپتی که بتونه تعداد کارکتهای وارد شده در فرم رو بشمره



idocsidocs
سه شنبه 07 دی 1389, 11:43 صبح
من دنبال یه اسکریپت می گردم که تعداد کارکترهایی که وارد فرم می شن (چه بصورت تایپ و چه بصورت کپی و پیست) رو بشماره و اگه بیشتر از 250 کارکتر وارد فرم شد، جلوی ارسال فرم رو بگیره به کاربر اعلام کنه که تعداد کارکترها بیشتر از حد مجاز هستن.

hossin.esm
سه شنبه 07 دی 1389, 12:30 عصر
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<script type="text/javascript">
function check()
{
if(document.getElementById('txt').value.length > 250)
{

alert('length > 250');
return false;
}
else
{
return true;
}
}
</script>
</head>

<body>
<form onSubmit="return check()" action="">
<input name="txt" type="text" size="100" id="txt" >
<input name="btn" type="Submit" value="check" >
</form>
</body>
</html>

idocsidocs
سه شنبه 07 دی 1389, 13:53 عصر
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<script type="text/javascript">
function check()
{
if(document.getElementById('txt').value.length > 250)
{

alert('length > 250');
return false;
}
else
{
return true;
}
}
</script>
</head>

<body>
<form onSubmit="return check()" action="">
<input name="txt" type="text" size="100" id="txt" >
<input name="btn" type="Submit" value="check" >
</form>
</body>
</html>


امکانش هست که این اسکریپت طوری تغییر کنه که همراه با تایپ کردن کاربر، تعداد کاراکترهای درج شده رو در بالای فرم به کاربر نشون بده؟

hossin.esm
سه شنبه 07 دی 1389, 15:38 عصر
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<script type="text/javascript">
function check()
{
if(document.getElementById('txt').value.length > 250)
{

alert('length > 250');
return false;
}
else
{
return true;
}
}
function ch()
{
document.getElementById('len').innerHTML= document.getElementById('txt').value.length;
}
</script>
</head>

<body>
<div id='len'>l</div>
<form onSubmit="return check()" action="">
<input name="txt" type="text" size="100" id="txt" onPropertychange="ch()">
<input name="btn" type="Submit" value="check" >
</form>
</body>
</html>

idocsidocs
سه شنبه 07 دی 1389, 18:11 عصر
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<script type="text/javascript">
function check()
{
if(document.getElementById('txt').value.length > 250)
{

alert('length > 250');
return false;
}
else
{
return true;
}
}
function ch()
{
document.getElementById('len').innerHTML= document.getElementById('txt').value.length;
}
</script>
</head>

<body>
<div id='len'>l</div>
<form onSubmit="return check()" action="">
<input name="txt" type="text" size="100" id="txt" onPropertychange="ch()">
<input name="btn" type="Submit" value="check" >
</form>
</body>
</html>


این کد کار نمی کنه و فقط بالای کادر می نویسه 1.

می شه این کد رو اصلاح کنید؟

همچنین کد طوری اصلاح بشه که کارکتر فاصله رو با سایر کاراکترها نشماره؟

hossin.esm
سه شنبه 07 دی 1389, 23:31 عصر
بله درسته کد بالا فقط در IE کار میکند.
من کد را برای firefox هم اصلاح کردم .و در IE ,firefox,chrome تست کردم مشکلی نداشت.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<script type="text/javascript">
function addevent(){

if(navigator.userAgent.indexOf("MSIE")>0){
document.getElementById('txt').attachEvent("onpropertychange",ch);
}else if(navigator.userAgent.indexOf("Firefox")>0){
document.getElementById('txt').addEventListener("input",ch,false);
}
else
{
document.getElementById('txt').addEventListener("input",ch,false);
}

};

function getOs(){
var OsObject = "";
if(navigator.userAgent.indexOf("MSIE")>0) {
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
return "Firefox";
}
if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
return "Safari";
}
if(isCamino=navigator.userAgent.indexOf("Camino")>0){
return "Camino";
}
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){
return "Gecko";
}
}

function check()
{
var str=(document.getElementById('txt').value).split(' ').join('');
if(str.length > 250)
{

alert('length > 250');
return false;
}
else
{
return true;
}
}
function ch()
{

var str=(document.getElementById('txt').value).split(' ').join('');
;
alert(str.length);
document.getElementById('len').innerHTML= str.length;

}
</script>
</head>

<body onLoad="addevent();">
<div id='len'>l</div>
<form onSubmit="return check()" action="">
<input name="txt" type="text" size="100" id="txt" >
<input name="btn" type="Submit" value="check" >
</form>
</body>
</html>

در رابطه با فاصله هم دیگه شمارش نمی شود

idocsidocs
سه شنبه 07 دی 1389, 23:56 عصر
بله درسته کد بالا فقط در IE کار میکند.
من کد را برای firefox هم اصلاح کردم .و در IE ,firefox,chrome تست کردم مشکلی نداشت.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<script type="text/javascript">
function addevent(){

if(navigator.userAgent.indexOf("MSIE")>0){
document.getElementById('txt').attachEvent("onpropertychange",ch);
}else if(navigator.userAgent.indexOf("Firefox")>0){
document.getElementById('txt').addEventListener("input",ch,false);
}
else
{
document.getElementById('txt').addEventListener("input",ch,false);
}

};

function getOs(){
var OsObject = "";
if(navigator.userAgent.indexOf("MSIE")>0) {
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
return "Firefox";
}
if(isSafari=navigator.userAgent.indexOf("Safari")>0) {
return "Safari";
}
if(isCamino=navigator.userAgent.indexOf("Camino")>0){
return "Camino";
}
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){
return "Gecko";
}
}

function check()
{
var str=(document.getElementById('txt').value).split(' ').join('');
if(str.length > 250)
{

alert('length > 250');
return false;
}
else
{
return true;
}
}
function ch()
{

var str=(document.getElementById('txt').value).split(' ').join('');
;
alert(str.length);
document.getElementById('len').innerHTML= str.length;

}
</script>
</head>

<body onLoad="addevent();">
<div id='len'>l</div>
<form onSubmit="return check()" action="">
<input name="txt" type="text" size="100" id="txt" >
<input name="btn" type="Submit" value="check" >
</form>
</body>
</html>
در رابطه با فاصله هم دیگه شمارش نمی شود

کد کار می کنه فقط یه ایراد داره و اونم اینکه تا یه حرف می نویسم دستور alert فعال می شه و توی کار نوشتن اخلال ایجاد می کنه.


من می خوام موقع نوشتن تعداد کاراکترهای وارد شده در بالای کادر و توی صفحه html نمایش داده بشه. اما موقع ارسال فرم اگر تعداد کاراکترها بیشتر از 250 عدد بود به کاربر هشدار داده بشه.

Mr FTHEL
چهارشنبه 08 دی 1389, 00:20 صبح
کد کار می کنه فقط یه ایراد داره و اونم اینکه تا یه حرف می نویسم دستور alert فعال می شه و توی کار نوشتن اخلال ایجاد می کنه.


من می خوام موقع نوشتن تعداد کاراکترهای وارد شده در بالای کادر و توی صفحه html نمایش داده بشه. اما موقع ارسال فرم اگر تعداد کاراکترها بیشتر از 250 عدد بود به کاربر هشدار داده بشه.
خوب دوست عزیز کافیه

;
alert(str.length); رو برداری:چشمک: