input
type属性をpassword
からtext
に変更しようとしています。
$('.form').find('input:password').attr({type:"text"});
なぜこれが機能しないのですか?
JQueryでこれを行うことはできません。 明示的に禁止 IEはサポートしていません(エラーが表示されるコンソールを確認してください。
入力を削除して、新しい入力を作成する必要がある場合は、たとえば次のようにします。
$('.form').find('input:password').each(function() {
$("<input type='text' />").attr({ name: this.name, value: this.value }).insertBefore(this);
}).remove();
制限を明確にするために、jQueryは<button>
または<input>
のtype
の変更を許可しないため、動作はブラウザー間で一貫しています(IE =それを許可しない、彼らはそれがどこでも禁止されていると判断した)。コンソールでこのエラーを取得しようとすると:
エラー:typeプロパティは変更できません
私の解決策:
$('#myinput').clone().attr('type','tel').insertAfter('#myinput').prev().remove();
代わりにprop
を使用してくださいattr
$('.form').find('input:password').prop({type:"text"});
私はゲームに少し遅れていることを知っていますが、IE9でこれを行うことができました(Microsoftはそれを許可することを決めたようです)。しかし、私はまっすぐなJavaScriptでそれをしなければなりませんでした。これは、ドロップダウンで選択されている項目に応じてフィールドタイプを変更するドロップダウンリストを含むフォームのサンプルです。
function switchSearchFieldType(toPassword) {
$('#SearchFieldText').val('');
if (toPassword === true) {
$('#SearchFieldText').get(0).setAttribute('type', 'password');
} else {
$('#SearchFieldText').get(0).setAttribute('type', 'text');
}
}
$('#SelectedDropDownValue').change(function () {
if ($("select option:selected").val() === 'password') {
switchSearchFieldType(true);
}
else {
switchSearchFieldType(false);
}
}).change();
これは簡単に機能するはずです。
$("selector").attr('type', 'hidden');
//Changing it to hidden
2018年であり、jQueryはこの機能を現在サポートしています。以下が機能します:
$('.form').find('input:password').attr("type","text");
これを実現するパラメーターとしてセレクターの配列を受け入れる2つの関数を次に示します。
// Turn input into Number keyboard
function inputNumber(numArr) {
if (numArr instanceof Array) {
for (var i = 0; i < numArr.length; i++) {
if ($(numArr[i]).length > 0) {
var copy = $(numArr[i]);
var numEle = copy.clone();
numEle.attr("type", "number");
numEle.insertBefore(copy);
copy.remove();
}
}
}
}
// Turn input into Email keyboard
function inputEmail(emailArr) {
if (emailArr instanceof Array) {
for (var i = 0; i < emailArr.length; i++) {
if ($(emailArr[i]).length > 0) {
var copy = $(emailArr[i]);
var numEle = copy.clone();
numEle.attr("type", "number");
numEle.insertBefore(copy);
copy.remove();
}
}
}
}
これを次のように使用できます。
var numberArr = ["#some-input-id", "#another-input-id"];
var emailArr = ["#some-input-id", "#another-input-id"];
inputNumber(numberArr);
inputEmail(emailArr);
これはとても簡単です。これはかなりうまくいきます。
$('#btn_showHide').on('click', function() {
if($(this).text() == 'Show')
{
$(this).text('Hide');
$('#code').attr('type', 'text');
}
else
{
$(this).text('Show');
$('#code').attr('type', 'password');
}
});
function passShowHide(){
if( $("#YourCheckBoxID").prop('checked') ){
document.getElementById("EnterPass").attributes["type"].value = "text";
}
else{
document.getElementById("EnterPass").attributes["type"].value="password";}