0
<script>
$('#Select_Font').attr('disabled', 'true');
$('#Enter_Text').attr('disabled', 'true');
$('.dropdownstyle').change(function(){
    $(".dropdownstyle option:selected").text();
    if($(this).attr('value').match(/Custom$/)) 
    {
        $('#Select_Font').attr('disabled', 'false');
        $('#Enter_Text').attr('disabled', 'false');
    } else if($(this).attr('value').match(/no Thanks$/)) 
    {
        $('#Select_Font').attr('disabled', 'true');
        $('#Enter_Text').attr('disabled', 'true');
    }
});
</script>


<table>
<tbody>
<tr>
<td>
<span>Select type</span>
</td>
<td>
<select class="dropdownstyle">
    <option value="No Thanks">No Thanks</option>
    <option value="Custom lid (200)">Custom lid (200)</option>
</select>
</td>
</tr>
<tr>
<td>
<span>Select font</span>
</td>
<td>
<select id="Select_Font"> 
    <option value="Arial">Arial</option> 
    <option value="georgia">georgia</option> 
</select>
</td>
</tr>
<tr>
<td>
<span>enter text</span>
</td>
<td>
<input type="text" id="Enter_Text">
</td>
</tr>
</tbody>
</table>

上記のコードでは、最初はフォント ドロップダウンとテキスト ボックスを無効にしたいのですが、カスタム フォームの最初のドロップダウンを選択すると、フォント ドロップダウンとテキスト ボックスを有効にしたいと考えています。どこが間違っているのかわからないので、機能させるにはどうすればよいですか。

4

3 に答える 3

1

ブール値 (true、false) の代わりに文字列 ('true'、'false') を使用しています。これを試して:

<script>
$('#Select_Font').attr('disabled', true);
$('#Enter_Text').attr('disabled', true);
$('.dropdownstyle').change(function(){
    $(".dropdownstyle option:selected").text();
    if($(this).attr('value').match(/Custom$/)) 
    {
        $('#Select_Font').attr('disabled', false);
        $('#Enter_Text').attr('disabled', false);
    } else if($(this).attr('value').match(/no Thanks$/)) 
    {
        $('#Select_Font').attr('disabled', true);
        $('#Enter_Text').attr('disabled', true);
    }
});
</script>
....
于 2013-03-08T18:52:57.167 に答える
1

試してみてください:サンプル

$('#Select_Font, #Enter_Text').attr('disabled', 'disabled');
$('.dropdownstyle').change(function () {
    var present = $(this).val().match(/\Custom\b/gi) == null ? true : false;
    if(present){
        $('#Select_Font, #Enter_Text').prop('disabled', 'disabled');
    }
    else{
        $('#Select_Font, #Enter_Text').removeAttr('disabled');
    }
});

$(this).attr('value')戻りundefinedます。使用する必要があります$(this).val()

于 2013-03-08T18:53:08.367 に答える
0

次を使用する必要があります。

$("#id").prop("disabled", true);

または、これも機能するはずです。

$("#id")[0].disabled = true;

コードでは、trueとfalseを文字列として(最初のエラー)、使用されなくなった.attr()に渡します(2番目のエラー)。

于 2013-03-08T18:51:52.407 に答える