2011-07-21 13 views
8

całkowicie newbie ... Chcę tylko wiedzieć, jak dynamicznie wyłączyć pole wejściowe, gdy pole drugie wejście jest wypełnionaWyłącz pole wejściowe czy drugie pole wejściowe jest wypełniona

np

<td><input type="text" name="num-input1" id="dis_rm" value=""></input></td> 
<td><input type="text" name="num-input2" id="dis_per" value="" ></input></td> 

pls ... jakieś linki i wskazówki zrobi ...

+0

wypełnionych środkami po wpisaniu danych w drugim polu tekstowym i kliknij gdzie indziej w aplikacji ?? –

+0

tak ... po tym, jak drugie wejście zostanie automatycznie wypełnione, pierwsza zostanie wyłączona ... jak? :( – debrajsy

+0

możesz użyć zdarzenia onchange lub onkeydown, aby wykryć zmiany w polu wejściowym, zobacz moją odpowiedź poniżej – Ibu

Odpowiedz

9

wystarczy dać mu właściwość niepełnosprawnych:

document.getElementById("dis_rm").disabled = true; 
document.getElementById("dis_per").disabled = true; 

można używać na zmianę imprezy, aby zobaczyć, jeśli jeden z nich jest wypełniona:

var dis1 = document.getElementById("dis_rm"); 
dis1.onchange = function() { 
    if (this.value != "" || this.value.length > 0) { 
     document.getElementById("dis_per").disabled = true; 
    } 
} 

więc jeśli pierwsza jest napełniony, drugi zostanie wyłączony

+0

Możesz tak więc użyj zdarzenia onkeydown, aby sprawdzić, czy jedno z nich jest puste, czy nie. – Ibu

+0

skrzypce pls ibu ... nie wydaje mi się, żeby to dobrze brzmiało – debrajsy

+0

@debrajsy tutaj działa [Fiddle] (http://jsfiddle.net/9fSAj /) mojego kodu. kiedy wypełniasz jedno pole, drugie jest wyłączone, gdy je wyczyścisz, wszystko wróci do normy – Ibu

0

Ustaw flagę disabled na polu chcesz wyłączyć, gdy zostanie wywołane zdarzenie OnBlur (dla opuszczenia pola) lub gdy zostanie wywołane zdarzenie OnChanged (z oczywiście sprawdzaniem poprawności na tej zmianie).

1
$('#secondinput').live('blur',function(){ 

    $('#firstinput').attr('disabled', true); 

}); 

Dzeije działa, gdy wypełnione pole drugie wejście i kliknij gdzie indziej ..........

2
$('#dis_per').blur(function(){ 
    if($(this).val().length != 0){ 
     $('#dis_rm').attr('disabled', 'disabled'); 
    }  
}); 

http://jsfiddle.net/jasongennaro/D7p6U/

Objaśnienie:

  1. , gdy drugie wejście traci ostrość ... .blur()

  2. Sprawdź, czy ma coś w sobie. Aby to zrobić, upewniając się, jego długość nie jest równa zero !=0

  3. jeśli ma coś w nim, dodać attributedisabled i ustawić go disabled

0

Możemy ommit pewne kroki, odnosząc się do formularza jako obiekt.

document.form1.num-input2.onchange = function() { 
    if (this.value != "" || this.value.length > 0) { 
     document.form1.num-input1.disabled = true; 
    } 
} 
0

Lubię tę odpowiedź, używając jQuery:

$('#seconddiv').live('focus',function(){ 
    $('#firstdiv').attr('disabled', true); 
}); 

Mam pasek wyszukiwania, który daje wyniki wyszukiwania z każdym naciśnięciem przycisku, jeśli nie zwraca żadnych wyników, wówczas użytkownik jest przedstawiona z postaci, Zapytaj o pomoc. Jeśli jednak wypełnią "formularz zapytania", a następnie ponownie wpiszą pasek wyszukiwania, usunie wszystko, co wpisali w formularzu zapytania. Aby rozwiązać ten problem, podałem wszystkie dane wejściowe w formularzu zapytania id "drugiego div" i id pola wyszukiwania = "firstdiv". Teraz, jeśli klikną lub przejdą do jednego z pól wprowadzania formularza zapytania, zostanie wyłączony pasek wyszukiwania, dzięki czemu ich dane nigdy nie zostaną nadpisane.

Dodam również przycisk, który ponownie włączy formularz wyszukiwania, jeśli zmienią zdanie.

A dla początkujących - I umieścić kod w nagłówku dokumentu jak ta:

<html> 
<head> 
<script type="text/javascript"> 
$('#seconddiv').live('focus',function(){ 
    $('#firstdiv').attr('disabled', true); 
}); 
</script> 
</head> 
<body> 
.... 
Powiązane problemy