<input type="text" id="motto" name="motto" value="">
そんなに長く書く代わりに、何かをいただけnameid="motto"
ますか?
javascript でこれを行う方法は? 私はこれまでphpの関数でこれを行ってきましたが、利用可能なjavascriptソリューションがあるかどうかに興味があります.
<input type="text" id="motto" name="motto" value="">
そんなに長く書く代わりに、何かをいただけnameid="motto"
ますか?
javascript でこれを行う方法は? 私はこれまでphpの関数でこれを行ってきましたが、利用可能なjavascriptソリューションがあるかどうかに興味があります.
nameid
HTML 仕様では、そのようなパラメーターは定義されていません。そのため、javascript を使用してそれを実現することはできますが、そもそも HTML が壊れてしまいます。その方法をお勧めしませんが、私の推奨に反して壊れたマークアップをレンダリングすることにした場合は、jQuery で次のことができます。
$(function() {
$('input').each(function() {
var nameid = $(this).attr('nameid');
$(this).attr('id', nameid).attr('name', nameid);
$(this).removeAttr('nameid');
});
});
HTMLにnameid属性があり、ページの読み込み時にJavaScriptで修正するということですか?
Array.prototype.forEach.call( // for each
document.querySelectorAll(*[nameid]), // element with this attribute
function (e) { // do
var v = e.getAttribute('nameid'); // get the value
e.setAttribute('id', v); // set id
e.setAttribute('name', v); // set name
e.removeAttribute('nameid'); // remove it
}
);
このnameid属性を持つ HTML は無効になることに注意してください。
ID を設定するだけで、これを JavaScript に入れて名前を同じに設定できます。
$('input[id]').each(function() { $(this).attr("name", this.id); });