1

テキスト入力のに応じて、入力にクラスを追加したいと思います。私の問題は、入力がすべてのクラスをレンダリングすることです。これがhtmlの部分です:

<form name="imcForm" id="imc">
    <p>poids: <input type="text" name="poids" size="10"></p>
    <p>taille: <input type="text" name="taille" size="10"></p>
    <p><input type="button" id="calcul" value="Calculer" onClick="calculImc()"></p>
    <p>result : <input type="text" name="imc" size="10" id="imcResult"></p>
    <p>Interprétation: <input type="text" name="interpretation" size="25" id="interpretation"></p>
</form>

そしてここにjavascript/jQueryがあります

$('#calcul').on("click", function() {
    $("#interpretation:input[value=itemA]").toggleClass('a');
    $("#interpretation:input[value=itemB]").toggleClass('b');
    $("#interpretation:input[value=itemC]").toggleClass('c');
    $("#interpretation:input[value=itemD]").toggleClass('d');
    $("#interpretation:input[value=itemE]").toggleClass('e');
    $("#interpretation:input[value=itemF]").toggleClass('f');
    $("#interpretation:input[value=itemG]").toggleClass('g');
});

また、入力をレンダリングするものを見てください:

<input type="text" id="interpretation" size="25" name="interpretation" class="denutrition normale moderee severe morbide">

では、なぜ各要素がクリック時に各クラスを受け取るのでしょうか。

4

3 に答える 3

1

入力>の最後にがありません。<button>

また、特にクラス名が常に入力フィールドの最後の文字である場合は、取得したコードを大幅に簡略化できます。

$('#calcul').on'click', function(){
    var class = $('#interpretation').val().slice(-1).toLowerCase();
    $('#interpretation').toggleClass(class);
});
于 2012-02-21T13:19:12.640 に答える
0

あなたが何をしているのか正確に言うのは難しいです。

ただし、問題は2つのクリックハンドラーがあることである可能性があります。1つはjQueryからのもので、もう1つは「ハードコードされた」ものです。 onClick="calculImc()"

于 2012-02-21T13:19:04.267 に答える
0

これを試して:

$('#calcul').on("click", function() {

    var target = $("#interpretation");
    var val =  target.val();
    var className = "";
    if(val == "itemA")                     
    {
        className = "a";
    }
    else if(val == "itemB")                     
    {
        className = "b";
    }
    else if(val == "itemC")                     
    {
        className = "c";
    }
    //............
    target.attr("class", className );
});
于 2012-02-21T13:26:24.760 に答える