PDA

View Full Version : تعریف متغیر در ورودی های تابع



abdollahpor
دوشنبه 25 خرداد 1394, 10:31 صبح
درود دوستان :
یه مشکلی برخوردم یه جا تو پروژه ای که دارم به اینجا رسیدم : یه درخاستی رو به این منوال تعریف کردم :


<a href="javascript:selectwork('selectwork','<?php echo $Fetch['code']; ?>','1','سسسسسس')">




این کدتابع selectwork رو تو جاوا فراخانی میکنه و مقادیر رو ارسال میکنه بهش ..خب تا اینجا مشکلی نیست ولی مشکلم جایی هست که میخام تو ورودی های همین تابع یه متغییر رو که در همین صفحه توسط جاوا مقدار وارد شده از textarea میگیرم رو بزارم و ارسال کنم .
ینی اینجوری :





<textarea class="textareanasab" placeholder="یادداشت" name="comentnasab" id="textareanasab"></textarea>
<script>
var comtemp='';
$('#textareanasab').on('keydown', function(event){
var key = String.fromCharCode(event.which);
if (!event.shiftKey) {
key = key.toLowerCase();
}
comtemp=$('#textareanasab').val();
});
</script>
<a href="javascript:selectwork('selectwork','<?php echo $Fetch['code']; ?>','1','xxxxx')">





خب حالا به جای xxxxx که گذاشتم میخام متقیر comtemp رو که از textarea گرفتمو بزارم ..چه جوری باید بزارم ؟

barnamenevis2016
دوشنبه 25 خرداد 1394, 13:20 عصر
سلام......
اگر کداتو به همون ترتیبی که نوشتی بنویسی...با این تفاوت که متقیر comtemp رو بدون var تعریفش کنی....می تونی جای xxxxx بدون هیچ دردسری... متغیر comtemp رو جا بدی....فقط همون طور که گفتم...دیگه برای comtemp از پیشوند var استفاده نکن...

abdollahpor
دوشنبه 25 خرداد 1394, 23:27 عصر
ممنون بابت جوابتون ...
ولی مشکل رفع نشد اینجوری نوشتم :




comtemp='';
$('#textareanasab').on('keydown', function(event){
var key = String.fromCharCode(event.which);
if (!event.shiftKey) {
key = key.toLowerCase();
}
comtemp=$('#textareanasab').val();
});





<a href="javascript:selectwork('selectwork','<?php echo $Fetch['code']; ?>','1','comtemp')">




<textarea class="textareanasab" placeholder="یادداشت" name="comentnasab" id="textareanasab"></textarea>


ترتیبشم همینجوریه تو پیج ...

ولی کد گرفتن مقادیر از textarea نمیدونم چرا تو صفحه های دیگه کار میکنه ولی تو این صفحه کلا alert میکنم نشون نمیده ..البته بگم این پیج توسط ایجکس فراخانی میشه تو صفحه .

و اون مقدار تگ هم وقتی با کوتیشن میزنم خود همون comtemp رو نشون میده وقتی هم بدون کوتیشن میزارم .کلا از کار میافته

barnamenevis2016
دوشنبه 25 خرداد 1394, 23:49 عصر
خوب ابتدا بگم که دیگه متغیر comtemp در میان ' ' قرار ندید...الام شما اینطور نوشتی 'comtemp' که اشتباهه.....دیگه متغیرای جاوا رو بین ' ' نمی زارن
دوم اینکه جلوی مساوی href توی تگ a چرا نوشتی

javascript<b></b>:
باس <b></b> رو از جلوی javascript برداری...نباید اونجا باشن...
و بعد الان ترتیبم اشتباهه...کد زیر

<textarea class="textareanasab" placeholder="یادداشت" name="comentnasab" id="textareanasab"></textarea>

باید بره بالا و قبل از او تعریف رویداد و تعریف متغیر comtemp باشه...یعنی ابتدای ابتدا بزاریش...

abdollahpor
سه شنبه 26 خرداد 1394, 01:13 صبح
مرسی شرمنده
اخه وقتی تک کوتیشن نمیزارم کلا کد غیر فعال میشه و خطا میده ..و برا اون <br> ها اون اینجا اونجوریه نمیدونم چرا تو انجمن اینجوری نشون داده ...و واسه textarea اخه جاشو نمیشه تغییر بدم دیزاین به هم میخوره ....
حالا قسمت کوتیشن رو چیکار کنم که وقتی برمیدارم کلا کد کار نمیکنه ..تابع ارسال نمیشه غیر فعال میشه

barnamenevis2016
سه شنبه 26 خرداد 1394, 12:20 عصر
خوب برای اینکه کد زیر عمل کنه

comtemp='';
$('#textareanasab').on('keydown', function(event){
var key = String.fromCharCode(event.which);
if (!event.shiftKey) {
key = key.toLowerCase();
}
comtemp=$('#textareanasab').val();
});
باید حتما
textarea قبلش باشه و قبلش تعریفش کرده باشی...چون کد بالا می آد می که اگر تا اینجا کار المنتی با آی
دی textareanasab بود مثلا فلان رویدادی رو بهش نسبت بده..حالا اگر قبلا textarea رو نزاری پس کد عمل نمی کنه....مهم اینه که کدای بالا پس از تعریف
textarea نوشته بشه....فکر نکنم...مشکلی باشه از این بابت براتون....و من نمیدونم هدف شما چیه...اگر مهم این که در تابع
selectwork به جای xxxxxxx مقدار درون
textarea رو بدی...می تونی به جای xxxxxx اصلا بیایی این کد رو بنویسی...
.$('#textareanasab').val()

یعنی به شکل زیر:


<a href="javascript:selectwork('selectwork','<?php echo $Fetch['code']; ?>','1',$('#textareanasab').val())">

الان من کد زیر رو تست کردم....جواب گرفتم:


<a href="javascript:alert(comtemp)">click</a><textarea class="textareanasab" placeholder="یادداشت" name="comentnasab" id="textareanasab"></textarea>

<script>
comtemp='';
$('#textareanasab').on('keydown', function(event){
var key = String.fromCharCode(event.which);
if (!event.shiftKey) {
key = key.toLowerCase();
}
comtemp=$('#textareanasab').val();
});
</script>
حالا اگر همون کد منو داشته باشی...و به جای alert تابع خودتو بنویسی...باید کد کار کنه....و اگر متغیر نسبت دهی شده باشه....باید متغیر بدون کوتیشن باشه....که اگر داخل کوتیشن باشه..باهاش مثل یک متن رشته ای برخورد می شه....

barnamenevis2016
سه شنبه 26 خرداد 1394, 12:31 عصر
آره منم الان من خودم javascript رو بدون آوردن <b></b> نوشتم...ولی سایت و یا ادیتور در هنگام نمایش خودش یک <b></b> اضافه می کنه :متفکر: