indexedDB があり、ログイン機能に使用しています。ログイン時にユーザー情報をフォームに入力しようとしています。ただし、フォームにはユーザー情報の代わりに [object HTMLInputElement] が入力されます。
これは、ユーザー (db キー) を使用してオブジェクト (ユーザー) にアクセスする場所です。
EDITこれが実行されている私のサイトです: http://www3.carleton.ca/clubs/sissa/html5/admin.html 私のサイト エディターは、保存時にサイトを更新しているため、新しいものを試すとサイト スクリプトが変更される可能性があります。もの。
これは、ユーザー (db キー) を使用してオブジェクト (ユーザー) にアクセスする場所です。
function loginCheck(user,pass){ db.transaction("users").objectStore("users").get(user).onsuccess = function(event) {
var loggedUser = event.target.result;
if(!loggedUser){
alert('Sorry, Username does not exist. Please try again.');
}else if(pass !== loggedUser.pw ){
alert('Incorrect log in combination. Please try again.');
}else{loggedIn(loggedUser);}
}
}
function loggedIn(loggedUser){
var u=loggedUser;
alert('Welcome '+u.fn+' '+u.ln+' to Macroplay');
//function to populate fields
alert('get values called');
getValues(u);
//session store
var signedin = 'user';
var username = u.userName;
newLocal(signedin,username);
alert('local storage set');
}
この関数 getValues を使用して、オブジェクトから必要なさまざまなフィールドを格納します。
編集: 変数 test をグローバルとして宣言し、ユーザーの名 (fn) を保存しました。アラートには正しい名前が表示されますが、移入しても未定義のままです。
var test;
function getValues(loggedUser){
var u = loggedUser;
alert('storing first name');
test = u.fn;
alert('First name = '+test);
lName = u.ln;
users = u.userName;
pass = u.pw;
email = u.em;
dob = u.dob;
tel = u.tel;
bio = u.bio;
school = u.scl;
alert('user values stored');
if(u.gender == 'M'){
gender[0].checked= true ;
}else{gender[1].checked= true ;}
}
これは、[object HTMLInputElement] を提供するフォームに入力するために使用する関数です
function populateFields(){
alert('Name of populated field: '+test);
fName.value = test;
lName.value = lName;
users.value = users;
pass.value = pass;
email.value = email;
dob.value = dob;
tel.value = tel;
bio.value = bio;
terms.disabled = true;
school.value = school;
alert('populate fields done');
save.value = 'Update';
signin.innerHTML = 'Log Out';
registerLabel.innerHTML = 'Account Information';
//open user info form
var accountInfo = document.getElementsByTagName('details');
accountInfo[1].open = open;
}