これは簡単なことで、Googleで検索する必要があります。最善を尽くしましたが、より良い解決策を見つけることができませんでした。フォームフィールドにはいくつかの入力があり、選択フィールドにはいくつかの値があります。また、「その他」の値もあります。
私が欲しいのは:
ユーザーが「その他」オプションを選択すると、「その他」を指定するテキストフィールドが表示されます。ユーザーが(「その他」以外の)別のオプションを選択すると、そのオプションを再度非表示にします。 JQueryを使用してどのように実行できますか?
これは私のJSPコードです
<label for="db">Choose type</label>
<select name="dbType" id=dbType">
<option>Choose Database Type</option>
<option value="Oracle">Oracle</option>
<option value="mssql">MS SQL</option>
<option value="mysql">MySQL</option>
<option value="other">Other</option>
</select>
<div id="otherType" style="display:none;">
<label for="specify">Specify</label>
<input type="text" name="specify" placeholder="Specify Databse Type"/>
</div>
次に、ユーザーが[その他]を選択した場合にのみ、DIVタグ**(id = "otherType")**を表示します。 JQueryを試してみたい。これは私が試したコードです
<script type="text/javascript"
src="jquery-ui-1.10.0/tests/jquery-1.9.0.js"></script>
<script src="jquery-ui-1.10.0/ui/jquery-ui.js"></script>
<script>
$('#dbType').change(function(){
selection = $('this').value();
switch(selection)
{
case 'other':
$('#otherType').show();
break;
case 'default':
$('#otherType').hide();
break;
}
});
</script>
しかし、私はこれを得ることができません。私は何をすべきか?ありがとう
コードにはいくつかの問題があります。
<select name="dbType" id=dbType">
__<select name="dbType" id="dbType">
_である必要があります
$('this')
は$(this)
でなければなりません:括弧内に引用符は必要ありません。
オプションの値を取得する場合は、.value()の代わりに.val()を使用します
「選択」を初期化するときは、関数の最初に既に行っていない限り、その前に変数を付けてそれを行います
これを試して:
_ $('#dbType').on('change',function(){
if( $(this).val()==="other"){
$("#otherType").show()
}
else{
$("#otherType").hide()
}
});
_
[〜#〜] update [〜#〜]スイッチで使用する場合:
_$('#dbType').on('change',function(){
var selection = $(this).val();
switch(selection){
case "other":
$("#otherType").show()
break;
default:
$("#otherType").hide()
}
});
_
[〜#〜] update [〜#〜]jQueryおよびjQuery-UIへのリンク:
_<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
_
$(document).ready(function () {
toggleFields(); // call this first so we start out with the correct visibility depending on the selected form values
// this will call our toggleFields function every time the selection value of our other field changes
$("#dbType").change(function () {
toggleFields();
});
});
// this toggles the visibility of other server
function toggleFields() {
if ($("#dbType").val() === "other")
$("#otherServer").show();
else
$("#otherServer").hide();
}
HTML:
<p>Choose type</p>
<p>Server:
<select id="dbType" name="dbType">
<option>Choose Database Type</option>
<option value="Oracle">Oracle</option>
<option value="mssql">MS SQL</option>
<option value="mysql">MySQL</option>
<option value="other">Other</option>
</select>
</p>
<div id="otherServer">
<p>Server:
<input type="text" name="server_name" />
</p>
<p>Port:
<input type="text" name="port_no" />
</p>
</div>
<p align="center">
<input type="submit" value="Submit!" />
</p>
val()
の代わりにvalue()
を使用する必要があり、開始引用符id=dbType"
はid="dbType"
変更
selection = $('this').value();
To
selection = $(this).val();
または
selection = this.value;
私はその答えを得ました。ここに私のコードがあります
<label for="db">Choose type</label>
<select name="dbType" id=dbType">
<option>Choose Database Type</option>
<option value="Oracle">Oracle</option>
<option value="mssql">MS SQL</option>
<option value="mysql">MySQL</option>
<option value="other">Other</option>
</select>
<div id="other" class="selectDBType" style="display:none;">
<label for="specify">Specify</label>
<input type="text" name="specify" placeholder="Specify Databse Type"/>
</div>
そして私のスクリプトは
$(function() {
$('#dbType').change(function() {
$('.selectDBType').slideUp("slow");
$('#' + $(this).val()).slideDown("slow");
});
});
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
function myfun(){
$(document).ready(function(){
$("#select").click(
function(){
var data=$("#select").val();
$("#disp").val(data);
});
});
}
</script>
</head>
<body>
<p>id <input type="text" name="user" id="disp"></p>
<select id="select" onclick="myfun()">
<option name="1"value="1">first</option>
<option name="2"value="2">second</option>
</select>
</body>
</html>
$('#dbType').change(function(){
var selection = $(this).val();
if(selection == 'other')
{
$('#otherType').show();
}
else
{
$('#otherType').hide();
}
});