Chcę, aby ten skrypt wyłączyć pola data, gdy obciążenia strony, a następnie włączyć / wyłączyć w zależności od pola rozwijanego. Skrypt po prostu nie robi nic, zastanawiałem się, czy ktoś może zobaczyć, co robię źle.

    <head>
    function formdisable(){
    var myTextField = document.getElementById('searchby');
if(myTextField.value = "agencyname")
    document.searchform.Date1.disabled=true
    document.searchform.Date2.disabled=true
    document.searchform.agencyname.disabled=false
else
    document.searchform.Date1.disabled=false
    document.searchform.Date2.disabled=false
    document.searchform.agencyname.disabled=true
    }
    onload = start;
    </script>
    </head>
    <table>
    <form id="searchform" name="searchform"> 
    <tr>
    <td>Search Term: </td><td><input tabindex="1" type="text" name="search" id="search1"        value=""  /></td>
    </tr>
    <tr><td>Search By:</td><td><select size="1"  id="searchby" name="searchby" onclick="formdisable()" tabindex="2">
<option value="agencyname">Agency Name</option>
<option value="daterange">Date Range</option>
    </select></td></tr>
    <tr>
    <td>Beginning Date: </td><td><input  id="Date1" name="Date1" size="10"   maxlength="10" value="<?php echo $_GET['Date1']?>"/> </td><td>Ending Date: </td><td><input   id="Date2" name="Date2" size="10" maxlength="10" value="<?php echo $_GET['Date2'];?>" />          </td></tr>
   <input type="hidden" id="wildcard" value="= 'Approved'" />  
   <input type="hidden" id="repid" value="<?php echo $_SESSION['REPID']; ?>" />  
   <tr><td><input tabindex="3" type='button' onclick='searchAgency()' name="searchsub"  value='Search' /></td></tr></td>
   </tr>
   </form>
   </table>
0
savagenoob 12 grudzień 2011, 20:38

3 odpowiedzi

Najlepsza odpowiedź

Od razu, widzę, że brakuje {} w twoim if/else i przypisanie = gdzie należy równość ==:

if(myTextField.value = "agencyname")
    document.searchform.Date1.disabled=true
    document.searchform.Date2.disabled=true
    document.searchform.agencyname.disabled=false
else
    document.searchform.Date1.disabled=false
    document.searchform.Date2.disabled=false
    document.searchform.agencyname.disabled=true

Powinien być prawdopodobnie:

<script type='text/javascript>
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// Forgot the opening script tag

Następnie...

if(myTextField.value == "agencyname") {
    //-------------^^^^^^^
    // ==, not =
    document.searchform.Date1.disabled=true;
    // Please manually insert semicolons--^^^
    document.searchform.Date2.disabled=true;
    document.searchform.agencyname.disabled=false;
}
else {
    document.searchform.Date1.disabled=false;
    document.searchform.Date2.disabled=false;
    document.searchform.agencyname.disabled=true;
}

W oryginalnej wersji przypisano agencyname do myTextField.value w stanie if(). Następnie był to bałagan częściowo wykonanego kodu. Przypisanie odniesie sukces, a następnie pierwszy (i tylko pierwszy) kolejne stwierdzenie wykonałoby jako część bloku {x3}}. Następne dwa wykonałby przed przyjazdem do błędu składniowego na else.

Opierasz się na automatycznej wstawce Semicolon, która jest niebezpieczną (mis-) funkcją języka JavaScript, gdy jest używany lekkomyślnie. Zawsze zakończ swoje stwierdzenia za pomocą ;

1
Michael Berkowski 12 grudzień 2011, 16:51

Brakuje ci 6; Dwa} i jeden {również musisz użyć == zamiast =.

Powinieneś przeczytać rozpoczęcia samouczka.

0
PiTheNumber 12 grudzień 2011, 16:43

Muszę się zgodzić z Michaelem, ale także przegapiłeś znacznik otwarcia

0
Imran 12 grudzień 2011, 16:45