0

変更を保存するという機能があり、次のようになります

function saveChanges() {
  var theCity = city.value;
  var theState = state.value;
  var theEmail = email.value;
  var theAge = age.value;
  var theGender = gender.value;
  var theOther = other.value;
    alert("theCity is: "+ theCity);
    alert("theState is: "+ theState);
    alert("theEmail is: "+ theEmail);
    alert("theAge is: "+ theAge);
    alert("theGender is: "+ theGender);
    alert("theOther is: "+ theOther);
}
window.onload=function (){
    document.getElementById('ok').onclick=saveChanges;

}

そして、単純なhtmlページに複数の入力があります。

コンテンツを送信するには、下部にリンクがあります。

<a href="#" id="ok" style="color:white;">Click here <-- </a>

同じ id='ok' のボタンを作成しましたが、機能しません。

私は何が欠けていますか?

4

5 に答える 5

1

これを試してください、

HTML

<form onsubmit="return validate(this)" method="POST" action="a_post_page.php">
    name: <input type="text" name="name" /> <br />
    email: <input type="text" name="email" /> <br />
    age: <input type="text" name="age" /> <br />
    gender: <input type="text" name="gender" /> <br />
    city: <input type="text" name="city" /> <br />
    <br />
    <input type="submit" name="submit_form" value="Save" />
</form>

Javascript

function validate(form1) {  
    if(form1.name.value === "") {  
        alert("Please type your name the name feild.");  
        return false;  
    }  
    if(form1.email.value === "") {  
        alert("Please type your email the email feild.");  
        return false;  
    }  
    if(form1.age.value === "") {  
        alert("Please type your age the age feild.");  
        return false;  
    }  
    if(form1.gender.value === "") {  
        alert("Please type your gender the gender feild.");  
        return false;  
    }  
    if(form1.city.value === "") {  
        alert("Please type your city the city feild.");  
        return false;  
    }  
    return true;  
}  
于 2012-12-17T06:17:19.393 に答える
0

試す

HTML

<input type='text' id='city'> <br />
  <input type='text' id='state'> <br />
  <input type='text' id='email'> <br />
  <input type='text' id='age'> <br />

<hr>
<a href="#" id="ok" style="">Click here </a>​​​​​​​​​​​​​​​​

Javascript

function id(e){
   return document.getElementById(e);
}

function saveChanges(){
   var city  = id('city').value,
       state = id('state').value,
       email = id('email').value,
       age   = id('age').value;

    alert("City : " + city + "\nState :" + state  +"\nEmail : " + email + "\n Age  : " + age);  

    return false;
}
window​.onload = function(){    
    document.getElementById("ok").onclick = saveChanges;
};​

デモ: http://jsfiddle.net/Zjrd3/

于 2012-12-17T04:43:47.710 に答える
0

href は同じページです。ボタンをクリックすると、そのスクリプトを実行する前にリダイレクトされる場合があります。false などを返してみてください。

于 2012-12-17T04:20:53.547 に答える
0

保存機能がフォーム内のいくつかのフィールドを送信するためにチェックすると仮定しています。その場合、エラーはリンクや送信に関するものではなく、変数の使用方法に問題があります。city.value だけではできません。document.getElementById('city').value を使用する必要があります。これにより、javascript は「変数未定義」エラーを発生させ、実行を停止します。正しいコードは次のようになります。

function saveChanges() {
  var theCity = document.getElementById('city').value;
  var theState = document.getElementById('state').value;
  var theEmail = document.getElementById('email').value;
  var theAge = document.getElementById('age').value;
  var theGender = document.getElementById('gender').value;
  var theOther = document.getElementById('other').value;
    alert("theCity is: "+ theCity);
    alert("theState is: "+ theState);
    alert("theEmail is: "+ theEmail);
    alert("theAge is: "+ theAge);
    alert("theGender is: "+ theGender);
    alert("theOther is: "+ theOther);
}
window.onload=function (){
    document.getElementById('ok').onclick=saveChanges;

}
于 2012-12-17T04:28:19.130 に答える
0

document.getElementById複数の要素には適用されません。ID は一意である必要があります。

于 2012-12-17T04:45:54.850 に答える