Наличие одного поля ввода автоматически обновляет другое, и наоборот (возможно, с использованием JavaScript) - PullRequest
1 голос
/ 05 января 2012

Я не настолько опытен в JavaScript, поэтому мне нужна помощь с проектом.

У меня есть форма, среди прочего, 3 поля ввода текста (назовем их A, B и C),Мне нужно, чтобы пользователь мог вводить только A + B ИЛИ C. Поэтому можно ли сделать поле формы неактивным, как только пользователь нажмет другое (и наоборот).

Был бы очень признателен за любую помощь.Я думаю, это не должно быть сделано в JavaScript.

Ответы [ 2 ]

0 голосов
/ 05 января 2012

HTML

<input class="onlyone" id="first" />
<input class="onlyone" id="second" />
<input class="onlyone" id="third" />

JavaScript

document.querySelectorAll('.onlyone').addEventListener('click', function(){
if(this.getAttribute('disabled') != 'disabled'){ // check if it was disabled before

   for(var i=0; i<document.querySelectorAll('.onlyone').length; i++){
    document.querySelectorAll('.onlyone')[i].setAttribute('disabled, 'disabled'); //disable em all
   }

   this.removeAttribute('disabled'); //enable this one
}
}, false);
0 голосов
/ 05 января 2012

Вы можете написать для этого javascript, который будет привязан, как следует

<script>
function fun(ele){
var elea=document.getElementById('a');
var eleb=document.getElementById('b');
var elec=document.getElementById('c');
if (ele.id='a' &&(eleb.length==0 || elec.length==0))
{
      this.readonly=false;
}
if (ele.id='b' && (elea.length==0 || elec.length==0))
{
       this.readonly=false;
}
if (ele.id='c' && (elea.length==0 || eleb.length==0))
{
       this.readonly=false;
}

}
</script>
<input type="text" id="a" onfocus="fun(this)" readonly="true"/>
<input type="text" id="b" onfocus="fun(this)" readonly="true"/>
<input type="text" id="c" onfocus="fun(this)" readonly="true"/>

Вы также можете динамически связывать события вместо встроенных. См. Слушатели событий привязки Javascript Four Ways *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...