回答:
EDIT 2013年2月1日。この回答の人気と、プロパティと属性に関するバージョン1.9(および2.0)でのjQueryの変更により、いくつかのメモとフィドルを追加して、入力でプロパティ/属性にアクセスするときの動作を確認しました。ボタンといくつかの選択。ここでフィドル:http : //jsfiddle.net/pVBU8/1/
すべての入力を取得します。
var allInputs = $(":input");
すべての入力タイプを取得します。
allInputs.attr('type');
値を取得します。
allInputs.val();
注:.val()は、関連するタイプの:checkedとは異なります。使用する:
.attr("checked");
EDIT 2013年2月1日-re:attrは変更されたプロパティに対して適切な値を返さないため、jQuery 1.9はattr()ではなくprop()を使用します。
.prop('checked');
または単に
$(this).checked;
チェックの値を取得する-それが現在何であれ。チェックするものだけが必要な場合は、単に ':checked'を使用します。
編集:タイプを取得する別の方法は次のとおりです:
var allCheckboxes=$('[type=checkbox]');
EDIT2:次の形式に注意してください:
$('input:radio');
を超える
$(':radio');
どちらも次と同等です。
$('input[type=radio]');
しかし、「入力」が望ましいので、入力のみを取得し、の形式$(':radio')
が使用される場合にユニバーサル「*」を使用しません。$('*:radio');
2015年8月19日の編集:の設定を$('input[type=radio]');
使用する必要があります。これにより、最新のブラウザーでラジオ入力の検索を最適化できるようになります。
EDIT 2013年2月1日、コメントごとにre:select elements @dariomac
$('select').prop("type");
「multiple」属性に応じて「select-one」または「select-multiple」を返し、
$('select')[0].type
存在する場合、最初の選択に対して同じ結果を返します。そして
($('select')[0]?$('select')[0].type:"howdy")
存在する場合はタイプを返し、存在しない場合は「ハウディ」を返します。
$('select').prop('type');
DOMの最初のプロパティが存在する場合はそのプロパティを返し、ない場合は「未定義」を返します。
$('select').type
存在する場合は最初のタイプを、存在しない場合はエラーを返します。
allInputs.attr('type');
つまり、最初の要素の入力タイプのみを取得します。allInputs[0].attr('type');
コレクションに複数の要素がある場合。同じことがallInputs.val();
allInputs.each(function(){ var type = $(this).attr('type'); var val = $(this).val() });
次のことができます。
var inputType = $('#inputid').attr('type');
入力タイプを気にせずに値を持つフォーム内のすべての入力を取得したい場合は、次のようにしてください。
例: http : //jsfiddle.net/nfLfa/
var $inputs = $('form').find(':checked,:selected,:text,textarea').filter(function() {
return $.trim( this.value ) != '';
});
これで、いくつかの値を持つ入力要素のセットができました。
値を配列に入れることができます:
var array = $inputs.map(function(){
return this.value;
}).get();
または、それらをシリアル化することもできます:
var serialized = $inputs.serialize();
探し始めるのに最適な場所は http://api.jquery.com/category/selectors/
これは良い例のセットを提供します。
究極的には、DOMでの要素の選択はCSSセレクターを使用して行われるため、IDで要素を取得することを考えている場合は$( '#elementId')を使用し、すべての入力タグが必要な場合は$( 'input')を使用します。最後に、タイプがチェックボックスのすべての入力タグが必要な場合に必要と思われる部分を使用します$( 'input、[type = checkbox])
注:必要な値のほとんどは属性にあるため、属性のcssセレクターは[attributeName = value]です。
リストボックスに提示されたドロップダウンを要求したからといって、次のことを試してください。
$('select, [size]).each(function(){
var selectedItem = $('select, [select]', this).first();
});
コードはメモリからのものだったので、小さなエラーに備えてください
var val = $('input:checkbox:checked, input:radio:checked, \
select option:selected, textarea, input:text',
$('#container')).val();
コメント:
私は、textarea、入力フィールド、選択フォーム、ラジオボタンのセット、または単一のチェックボックスのいずれかであるフォーム要素が1つだけあると想定しています(チェックボックスがさらに必要な場合は、コードを更新する必要があります)。
問題の要素はIDを持つ要素内にありますcontainer
(ページ上の他の要素とのあいまいさを取り除くため)。
次に、コードは、最初に一致した要素の値を返します。私が使っ:checked
ているので、これは常にあなたが探しているものの正確な値であるべきです。
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(".show-pwd").click(function(){
alert();
var x = $("#myInput");
if (x[0].type === "password") {
x[0].type = "text";
} else {
x[0].type = "password";
}
});
});
</script>
</head>
<body>
<p>Click the radio button to toggle between password visibility:</p>Password:
<input type="password" value="FakePSW" id="myInput">
<br>
<br>
<input type="checkbox" class="show-pwd">Show Password</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script type="text/javascript" src="hs/jquery1.js"></script>
<title>Document</title>
</head>
<body>
<form>
<input type="text" class="tamil">
<input type="button" class="english">
</form>
<script>
$("input").addClass(function(index){
console.log($(this).attr('type'));
})
</script>
</body>
</html>
ライトフォームタイプを取得します