2017-07-11 18 views
0

jqueryを初めて使用しました。私は、ボタンをクリックしたときに入力フィールドを切り替えることを試みていました。ボタンの値も変更しました。ここで、入力フィールドをクリックすると、ボタンが変更され、値が変更されます。ボタンを2回クリックしたときに値を元に戻したい。Jqueryボタンの値を切り替える

これは意味がありますか?ここで

はコードです:

$(document).ready(function() { 
 

 
    $('#submit').click(function() { 
 
    $('#hello').toggle(); 
 
    $('#submit').val("I don't love you"); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="hello" type="text"> 
 
<input type="text"> 
 
<input type="text"> 
 
<input id="submit" type="button" value="love you"></button>

+0

これが解決策である場合、私は知らないが、あなたはfreedomn-M @入力 – Will

+0

を提出する上とを使用しているが、「ボタンを2回クリックされました。」どういう意味ですか?? –

+1

人、それはちょうど#submit要素の誤植です。ボタンで入力して閉じる – Will

答えて

2

あなたは、データは、あなたがそれかどうかに基づいて表示し、そのうちの一つに対して現在の値をチェックし、切り替えたい2つの値を持つ属性設定することができます一致するかどうか

<input id="hello" type="text"> 
 
    <input type="text"> 
 
    <input type="text"> 
 
    <input id="submit" type="button" data-default="love you" data-alt="i dont love you" value="love you"></button> 
 

 

 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 

 
    <script> 
 
    $(document).ready(function() { 
 
     var $submit = $("#submit"), 
 
      def = $submit.data('default'), 
 
      alt = $submit.data('alt'); 
 
     $submit.on("click", function() { 
 
     $("#hello").toggle(); 
 
     ($submit.val() == def) ? $submit.val(alt) : $submit.val(def); 
 
     }); 
 
    }); 
 
    </script>

+0

ありがとう!マイケル..それはちょうどjquery ..またはいくつかの他のフレームワークです...それは少し異なる見つける。デフォルト/ altというデータを使用するというこの概念を見たことはありません。それは面白いです。 –

+0

@SukhpreetSinghAlang jqueryやフレームワークではありません。それは単純なHTMLです。 https://developer.mozilla。org/en-US/docs/Learn/HTML/Howto/Use_data_attributes CSSやJavascriptでHTMLにあるデータ属性にアクセスすることができます(jqueryは単なるjavascriptライブラリです。これは間違いなく、あなたが選んだ答えのように、JavaScriptのテキストをハードコーディングするよりも優れたアプローチです。 –

+0

これについての情報をありがとう。その答えはまず試しました。そして、私は実際にデータアプローチについて知りませんでした。しかし、私は今理解しています。カッコイイです。再度、感謝します! –

0

あなたはアイテムが現在表示されているかどうかを判断するために:visibleを使用することができます。あなたがトグルを使用しているとして、あなたはすぐにこれを行うことができます:

$("#hello").is(":visible") ? "text on visible" : "text on hidden" 

更新スニペット:

$(document).ready(function() { 
 

 
    $('#submit').click(function() { 
 
    $('#hello').toggle(); 
 
    $('#submit').val($('#hello').is(":visible") ? "I love you again" : "I don't love you"); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="hello" type="text"> 
 
<input type="text"> 
 
<input type="text"> 
 
<input id="submit" type="button" value="love you"></button>

+0

素敵...自由...ソリューションありがとう –

0

ボタンのテキストの値のクイックチェックそのトリックを行います。

$(document).ready(function(){ 
 

 
$('#submit').click(function(){ 
 
$('#hello').toggle(); 
 
    var submitButton = $('#submit'); 
 
    if(submitButton.val() === 'I dont love you'){ 
 
     submitButton.val('love you'); 
 
    } else { 
 
     submitButton.val('I dont love you'); 
 
    } 
 
}); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="hello" type="text" > 
 
<input type="text"> 
 
<input type="text"> 
 
<input id="submit" type="button" value="love you"></button>

+0

ありがとう!ネイト。それは働いていた...あなたは最高です –

-1

http://api.jquery.com/toggle/

.toggle()はそのここでやって何をしている、マッチした要素を表示するか隠すために使用される)(.toggleのドキュメントを参照してください。..州質問の期待される機能

+0

質問に明記されているように:* "ボタンの値が変わります。ボタンを2回クリックしたときに元に戻すことができます。" * –

+0

これは答えではありません。解説のために*コメント*の質問をしてください。 –

0
<script> 
$(document).ready(function(){ 

    var clicked = false; 
    var msg1 = "love you"; 
    var msg2 = "love you, but not". 

    $('#submit').click(function(){ 
     clicked = !clicked; 
     $('#submit').val(clicked ? msg1 : msg2); 
    }); 

}); 

</script> 
0

多分あなたはこれを試すことができます:

$(document).ready(function() { 
     $('#submit').click(function() { 
      $('#hello').toggle(); 
      if($('this').val() === "I don't love you"){ 
       $('this').val('I love you') 
      } else { 
       $('this').val("I don't love you"); 
      } 
     }); 
    }); 
関連する問題