2017-09-03 7 views
1

Ich habe ein Suchformular, das Textfelder enthält. Was ich fragen möchte, ist, wenn textbox1(Hotel (num_rooms)) nicht leer ist, dann wird die textbox2(Packages(num_days)) deaktiviert oder wenn textbox2(Packages(num_days)) nicht leer ist dann wird die textbox1(Hotel (num_rooms)) deaktiviert. Weil diese Suchform zu einer anderen Ausgabe führt, die auf den Eingaben eines Benutzers basiert. Wenn der Benutzer versucht, Daten in textbox1 zu legen und es zu übermitteln, wird es viele Empfehlungen basierend auf den Benutzereinstellungen für Hotel wie in Paketen zurückgeben.Deaktivieren Sie das Textfeld, wenn ein anderes Textfeld in CSS und JavaScript nicht leer ist

<form action="Filtered-SearchResult.php" method="post"> 
 
    <div class="SearchForm"> 
 
<label id="Form"><h3 style="color:beige; text-align:left;">Search Form</h3></label><br> 
 
<br> 
 
<input type="text" name="location" class="searchtext" id="locate" placeholder="location" onkeyup="LettersOnly(this)" /><br> 
 
<input type="text" name="from_budget" class="searchtext" placeholder="minimum budget" style="width:150px;" onkeyup="NumbersOnly(this)" /> 
 
<input type="text" name="to_budget" class="searchtext" placeholder="maximum budget" style="width:150px;" onkeyup="NumbersOnly(this)" /><br> 
 
<input type="text" name="person" class="searchtext" placeholder="no of person" onkeyup="NumbersOnly(this)" /><br> 
 
<input type="text" name="no_of_rooms" class="searchtext" style="width:150px;" placeholder="hotel(num_rooms)" onkeyup="NumbersOnly(this)" /> 
 
<input type="text" name="no_of_days" class="searchtext" style="width:150px;" placeholder="Packages(num_days)" onkeyup="NumbersOnly(this)" /> 
 
<script> 
 
    function LettersOnly(input) { 
 
    var regex = /[^a-zA-Z ]/gi; 
 
    input.value = input.value.replace(regex, ""); 
 
    } 
 

 
    function NumbersOnly(input) { 
 
    var regex1 = /[^0-9]/gi; 
 
    input.value = input.value.replace(regex1, ""); 
 
    } 
 
</script> 
 
<input type="submit" name="search1" value="Show Prices" id="Prices2" /> 
 
    </div> 
 
</form>

Search Form Picture(Sample Output)

Antwort

0

Sie können eine Änderungsereignis für keine der Zimmer und nicht von Tagen wie diesen schreiben. Sie mehr Bedingung entsprechend

$("#no_of_days").change(function(){ 

    if($(this).val() == ""){ 
     $("#no_of_rooms").attr("disabled", false); 
    }else{ 
     $("#no_of_rooms").attr("disabled", true); 
    } 
    }); 

    $("#no_of_rooms").change(function(){ 
    if($(this).val() == ""){ 
     $("#no_of_days").attr("disabled", false); 
    }else{ 
     $("#no_of_days").attr("disabled", true); 
    } 
    }); 
+0

'$ hinzufügen (this) .val()' oder warum nicht einfach 'this.value'? '==' Warum Typumwandlung? Es ist nötig? Außerdem könntest du deine 5 Zeilen von "if ... else" in "$ (" # no_of_rooms ") umwandeln. Prop (" disabled ",! This.value);' mach 10 Zeilen zu zwei. Als einige Elemente Caching wäre auch in Ordnung ... –

Verwandte Themen