Javascript禁用/启用表单字段

时间:2011-12-12 16:38:38

标签: javascript

我希望此脚本在页面加载时禁用日期字段,然后根据下拉字段启用/禁用。脚本根本就没有做任何事情,想知道是否有人能看出我做错了什么。

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

3 个答案:

答案 0 :(得分:1)

我立即看到{}中遗失了if/else,而=所属的分配==

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

应该是:

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

则...

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;
}

在原始版本中,您在agencyname条件中为myTextField.value分配了if()。接下来是一堆部分执行的代码。赋值将成功,然后第一个(也是第一个)后续语句将作为if()块的一部分执行。接下来的两个将在else上出现语法错误之前执行。

您依赖于自动分号插入,这在使用鲁莽时是JavaScript语言的危险(错误)功能。请始终使用;

终止您的对帐单

答案 1 :(得分:0)

你错过了6;两个}和一个{你也需要使用==而不是=。

您应该阅读getting started tutorial

答案 2 :(得分:0)

我同意迈克尔,但你也错过了打开标签