0

初歩的な質問で申し訳ありません。たとえば、2 つの入力があります。最初のものは常に表示されますが、2 番目のものは最初のものの値が 0 未満の場合にのみ表示されます。このアクティビティを実装するために .change を使用しようとしましたが、機能しません。それで、誰かが私にいくつかの提案をすることができますか?前もって感謝します。

HTML コード:

<table>
<tr><th><label for="id_first">First input:</label></th><td><input type="text" name="First input" id="id_first" /></td></tr>
<tr><th><label for="id_second">Second input:</label></th><td><input type="text" name="First input" id="id_second" />
</td>
</tr>
</table>

jQuery コード

<script type="text/javascript" src=" ../stylesheets/jQuery-1.7.2.js"></script> 

<script>
$(document).ready(function() {
    $('#id_second').closest('tr').hide();
    $('#id_first').change(function() {    
    if ($(this).val() <0){
        $('#id_second').show()}    
    else{
        }
    });​​ 
4

4 に答える 4

4

jquery コードは次のようになります。構文エラーがありました。変更機能を閉じておらず、入力要素だけでなく「tr」を表示する必要があります

$(document).ready(function() {
    $('#id_second').closest('tr').hide();
    $('#id_first').change(function() {    
        if ($(this).val() <0){
            $('#id_second').closest("tr").show()
        }    
        else{
        }
    });
});​​ 
于 2012-04-20T19:30:53.167 に答える
2

if ($(this).val() <0)状態を確認する際はlengthプロパティをご利用ください

$('#id_second').closest('tr').hide();
$('#id_first').keyup(function() {    

if ($(this).val().length < 1){
    $('#id_second').closest("tr").show()}    
else{
        }
        });
​

(@dg3 によるコード)

http://jsfiddle.net/chepe263/jPybT/3/

于 2012-04-20T19:40:14.407 に答える
0
$(document).ready(function() {
     $('#id_second').parents("tr").hide();
     
     $("#id_first").keyup( function() {
        if((parseInt($(this).val(), 10)<0)){
            $('#id_second').parents("tr").show();}
        else {
            $('#id_second').parents("tr").hide();}
     });
});

JsFiddleデモ

.val()取得してstringいます。integerを使用するように変換する必要がありparseInt(string,radix)ます。

于 2012-04-20T19:45:38.783 に答える
0

私の英語でごめんなさい。このソリューションは適切に機能する必要があると思います。

<table>
        <tr>
            <th>
                <label for="id_first">First input:</label>
            </th>
            <td>
                <input type="text" name="First input" id="id_first" />
            </td>
        </tr>
        <tr>
            <th>
                <label for="id_second" style='display:none'>Second input:</label>
            </th>
            <td>
                <input type="text"  name="First input" id="id_second" style='display:none'/>
            </td>
        </tr>
    </table>

<script>
        // Subscribe on keyup event in first input
        $('#id_first').on('keyup', function(){
            // here "this" refers to input in which we have press the key

            // Getting first input value
            var inputValue = this.value;


            // Casting input value to number
            // -12a became -12
            // a12 or any value starting from a character became 0 
            inputValue = parseFloat(inputValue) || 0;


            // Now we selecting input and a label which we want to show/hide
            var $second = $('#id_second, label[for="id_second"]');


            // Check if first one's value is less than 0 
            // and shows the second row, if it is
            if(inputValue < 0)
                $second.show();
            // Otherwise hides the second row
            else
                $second.hide();

        })

    </script>
于 2012-04-20T19:50:24.683 に答える