في جافا سكريبت كيف أود أن أشير إلى this.form.checkbox [5] .checked؟

StackOverflow https://stackoverflow.com/questions/703126

  •  22-08-2019
  •  | 
  •  

سؤال

ولدي سلسلة من مربعات وإدخال نوع = المناطق "النص"، حيث أحتاج إلى ولاية خانة الاختيار لتعيين صحيح عندما تكون القيمة في التغييرات منطقة النص. بسيطا بما فيه الكفاية. لقد فعلت ذلك بنجاح:

<input name="fixed" type="checkbox">
<input name="stuff" type="text" onchange="this.form.fixed.checked=true">

والذي يعمل بشكل جيد. لديك لتحرير حقل ثم انقر للخروج منه، ولكن هذا على ما يرام لاحتياجاتي:

و... ولكن عندما أتحول إلى هذا:

<input name="fixed[0]" type="checkbox">
<input name="stuff" type="text" onchange="this.form.fixed[0].checked=true">
<input name="fixed[1]" type="checkbox">
<input name="stuff" type="text" onchange="this.form.fixed[1].checked=true">

وأحصل على أي تغيير في خانات بلدي عندما كنت تعديل:

وبلدي فقط جافا سكريبت الدراية تأتي من غوغلينغ هذا النوع من الشيء، وأنا أخشى. أي شخص لديه أي معلومات أفضل عن هذا من أوراكل جوجل على الجبل يوجد في المتجر؟

وشكرا ...

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

المحلول

والتبديل من تدوين نقطة لتدوين قوس!

this.form['fixed[0]'].checked

نصائح أخرى

قد يكون أنك خلط بعض الممارسات المشبوهة في HTML، وعندما تفعل ذلك في جافا سكريبت، وانهم كسر.

وهكذا this.form.fixed [1] في جافا سكريبت يقول حقا "البند الثاني في مجموعة this.form.fixed. لذا أعتقد أن هذه هي المشكلة. محاولة تسمية العناصر الخاصة بك fixed0 وfixed1 ونرى ما اذا كان يعمل.

تعديل : في. يمكنك أيضا استخدام قوس التدوين، كما يتضح من بيتر، الذي يجب ان تحل المشكلة دون تحرير أسماء المدخلات

تأكد الحياة أسهل على نفسك.

إنشاء معرف فريد للعناصر التي تحاول الرجوع والرجوع إليها من العناصر التي قمت بربط الأحداث الخاصة بك:

<input name="fixed[0]" type="checkbox" id="fixed_0">
<input name="stuff" type="text" onchange="document.getElementById('fixed_0').checked=true">
<input name="fixed[1]" type="checkbox" id="fixed_1">
<input name="stuff" type="text" onchange="document.getElementById('fixed_1').checked=true">
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top