2016-11-17 41 views
3

Iは、フォーム内の名前=「ID」と入力したら、プロップ(「ID」)メソッドは文字列として代わりにIDの入力要素を返しを返しますHTMLjQuerysプロップ()メソッドは、間違ったIDを

<form id="testform"> 
    <input name="id"> 
</form> 

JS

var $form = $('#testform'); 

var wrongId = $form.prop('id'); 
var correctId = $form.attr('id'); 

alert(wrongId); // alerts the html input element 
alert(correctId); // alerts the id testform 

誰も私にこれを説明することはできますか?

私はフィドル用意しました:これは、あなたが入力id名付けたのであり、そして https://jsfiddle.net/zosu17se/

おかげで、最高の

答えて

5

を入力、選択して他の「フォーム要素」の名前またはIDフォームのプロパティとして親フォームに添付されていますので、form.idが入力であり、要素idではありません。

Do 入力idまたはアクセスしたいかもしれない他のプロパティの名前を付けて問題を解決しました。

この

var form = window.test; // note that element ID's are also attached to the global scope 
 

 
form.id.value = 'test'; 
 
form.value.value = 'test more'; 
 
form.selectedIndex.value = '2';
<form id="test"> 
 
    <input name="id"> 
 
    <input name="value"> 
 
    
 
    <select id="selectedIndex"> 
 
    <option value="1">1</option> 
 
    <option value="2">2</option> 
 
    <option value="3">3</option> 
 
    </select> 
 
</form>

+0

またはその他のプロパティ名、例えばによって引き起こされる奇妙なコードの例:https://jsfiddle.net/zosu17se/9/ –

関連する問題