2009-03-31 4 views
0

У меня есть ряд флажков и полей ввода типа = "текст", в которых мне нужно установить состояние флажка в true, когда изменяется значение в текстовой области. Достаточно просто. Я сделал это успешно:В javascript, как я могу ссылаться на this.form.checkbox [5] .checked?

<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"> 

Я не получаю никаких изменений мои флажки, когда я редактирую:

моей только ява Я боюсь, что это ноу-хау для скриптов из такого рода вещей. У кого-нибудь есть лучшая информация об этом, чем в Oracle Google на The Mountain есть в магазине?

благодаря ...

ответ

6

переключатель от точечной нотации в скобки обозначения

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

Ура! Одна из быстрых изменений в моем представлении рельсов (он просто генерирует необработанный текст клиенту, поэтому я оставил это в своем вопросе) прибил его первый раз! – Sniggerfardimungus

0

Это может быть, что вы смешиваете некоторые теневые практики в HTML, и когда вы делаете это в JavaScript, они ломаясь.

Так что this.form.fixed [1] в javascript действительно говорит «Второй элемент в массиве this.form.fixed. Поэтому я думаю, что это проблема. Попробуйте называть ваши элементы fixed0 и fixed1 и посмотреть, работает ли это.

Edit: Вы можете также использовать кронштейн обозначения, как показано Петром, который должен решить проблему без редактирования имен входов

0

Сделайте жизнь проще для себя.

Создать уникальный ID для элементов, которые вы пытаетесь ссылаться и ссылаться на них из элементов, которые вы связываете ваши события:

<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">