مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

yuttrim

عضویت از 1394/03/17

اشکال در فهم کد زیر

  • پنجشنبه 21 خرداد 1394
  • 09:34
تشکر میکنم

با سلام من کد زیر رو از توی نت پیدا کردم اما قسمت آخرش رو متوجه نمیشم این کد برای این هستش که آپشن های لیست با توجه به مقدارهای وارد شده در text box تغییر کنه بدون رفرش شدن صفحه!

<input type="text" id="txt" onkeyup="checkValue();" /><select id="mySelect">
  <option>21</option>
  <option>22</option>
  <option>23</option>
  <option>24</option>
</select>
<script>
function checkValue(){
    var t_value=document.getElementById('txt').value;
    if(t_value==10 ||t_value==11 || t_value==12 || t_value==13 || t_value==14 || t_value==15){
        var x = document.getElementById("mySelect").selectedIndex;
        var y = document.getElementById("mySelect");
        var j=1
        for(var i=0;i<=y.options.length;i++){
            y[i].text=j;
            j++;
        }
    }
}
</script>

 

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • پنجشنبه 21 خرداد 1394
  • 10:14

در کد بالا کاری که انجام میشود، این است که مقداری از textboxگرفته می شود و در صورتی که مقدار مورد نظر برابر : 10، 11 ، 12، 13، 14، یا 15 بود توسط جاوا اسکریپت مقادیر داخل Select  تغییر می کند و تعداد آن هم همان تعداد optionهای select اول میباشد که در اینجا همان 4 عدد است و مقدار آن از 1 تا 4 داخل حلقه for تعریف می شود.

کاربر سایت

yuttrim

عضویت از 1394/03/17

  • پنجشنبه 21 خرداد 1394
  • 10:55

ممنون از توضیحتون من کد رو به این شکل تغییر دادم که با وارد کردن عددی بین بازه مورد نظر لیست اعداد از 8 شروع بشه و تا دو عدد بعد از 8 یعنی 8,9,10 ادامه داشته باشه اما کدم درست کار نمیکنه مشکلش کجاس؟

var t_value=document.getElementById('txt').value;
    if(t_value > 25000000 & t_value <= 50000000){
        var x = document.getElementById("mySelect").selectedIndex;
        var y = document.getElementById("mySelect");
        var j=8
        for(var i=0;i<=2 ;i++){
            y[i].text=j;
            j++;
        }
    }

میشه شرط  حلقه رو در کد زیر تغییر داد:

for(var i=0;i<=y.options.length;i++)

و به جاش بنویسیم 

for(var i=0;i<=y.options.length-17;i++)

اینجوری فقط سه تا آیتم اول رو با توجه به j=8 با اعداد 8 و 9 و 10 پر میشه اشتباس؟

کاربر سایت

سجاد باقرزاده

عضویت از 1392/02/24

  • پنجشنبه 21 خرداد 1394
  • 11:49

مسئله ای که وجود داره اینه که شما باید ابتدا تعداد optionهای select را تعریف کنید سپس به آن اضافه کنید، کد زیر تصحیح شده کد شماست :

<script>
        function checkValue() {
            var t_value = document.getElementById('txt').value;
            var x = document.getElementById("mySelect").selectedIndex;
            var y = document.getElementById("mySelect");
            var j;
            if (t_value > 25 & t_value <= 50) {
                j = 8;
                y.options.length = 3;
                for (var i = 0; i <= 2 ; i++) {
                    y[i].text = j;
                    j++;
                }
            } else {
                j = 21;
                y.options.length = 4;
                for (var i = 0; i <= 3 ; i++) {
                    y[i].text = j;
                    j++;
                }
            }
        }
    </script>

 

کاربر سایت

yuttrim

عضویت از 1394/03/17

  • شنبه 23 خرداد 1394
  • 14:29

چطور میشه عدد 13 رو از بین آیتم ها حذف نمود؟

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)