سؤال

لدي ما يلي وفي هذا الترتيب:

<script type="text/javascript">
  $(document).ready(function(){
     var overwrite = $('#itemList input:radio:checked').val() 

     alert('value = '+ overwrite);
  });
</script>
<body>
  <form ..... >
    <div id="itemList">
    Overwrite?
    <input type="radio" value="Yes" class="overWrite" name="overWrite" >Yes
    <input type="radio" value="No" class="overWrite" name="overWrite" >No
    </div>
  </form>
</body>

عندما يتم تشغيله ، سيكون للتنبيه "قيمة = غير محدد"

ولكن ، إذا وضعت JavaScript بعد Div (أو الجسم) ، فإن التنبيه يعود بـ "القيمة = نعم"

لماذا لا يتعرف jQuery على راديو النوع في بداية الصفحة؟ إذا قمت بإنشاء نوع = 'Hidden' ، يمكن لـ jQuery قراءة/التعرف على القيمة إذا كانت في بداية الصفحة. عندما يكون النوع = "راديو" ، يكون السلوك مختلفًا

هل كانت مفيدة؟

المحلول

يبدو أن المشكلة التي تديرها هي أنه لا يوجد ببساطة أزرار راديو محددة في تحميل الصفحة ، بحيث تقوم jQuery بإرجاع كائن فارغ.

سيؤدي هذا إلى التحقق من "لا" افتراضيًا ويعيد القيمة الصحيحة. لذا فإن JavaScript صحيح من الناحية الفنية ، فأنت بحاجة فقط إلى التحقق من القيم الفارغة

<head>
<title>jQuery Tester</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

</head>

<body>
    <div id="itemList">
    Overwrite?
    <input type="radio" value="Yes" class="overWrite" name="overWrite"  />Yes
    <input type="radio" value="No" class="overWrite" name="overWrite" checked="checked" />No 
    </div>


<script type="text/javascript">
  $(document).ready(function(){
     var overwrite = $('#itemList input:radio:checked').val();

     alert('value = ' + overwrite);
  });
</script>
</body>
</html>

نصائح أخرى

واجهت مشكلة مماثلة مع "غير محددة".

عندما اختبرت هذا

var isChecked = $('#itemList').attr('checked');

كان "غير محدد"

ولهذا

var isChecked = $('#itemList').prop('checked');

ischecked صحيح أو خطأ

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top