2

こんにちは、次の実装中にエラーが発生します。

次のコードで「保存」ボタンをクリックすると:

<td width="20%"><a href='#' class="close"> <input id="save"  onClick="updateMouseInfo();" type="button" value="Save" /></a></td>

getMouseInfo() 関数から updateMouseInfo() への mouse_id パラメータを呼び出したいのですが、mouse_id が定義されていないというエラーが表示されるので、解決策を教えてください。

function getMouseInfo(mouse_id) 
{ 
  var dataString = {auth_token: sessionStorage.auth_token, id: mouse_id};
  var mh_url =  MH_HOST + '/mice/get_mouse_info.json';
  alert("Inside Mouse Get Info");
  $.ajax(
  {
    type: "POST",
    url: mh_url,
    data: dataString,
    dataType: "json",
    success: function (data) 
    {

            //for (var info_count = 0, info_len = data.length; info_count < info_len; info_count++ );
            //{
                alert("Inside for loop");
                 //var mouse_info = data.cage.mice[info_count];

                 var ear_tag = document.getElementById("ear_tag");
                 var age = document.getElementById("age");
                 var genotype = document.getElementById("genotype");
                 var owner = document.getElementById("owner");
                 //var born = document.getElementById("born");
                 //var euthanize = document.getElementById("euthanize");
                 //var note = document.getElementById("note");

                 ear_tag.innerHTML = data[0].ear_tag;
                 age.innerHTML = data[0].age;
                 genotype.innerHTML = data[0].genotype_id;
                 owner.innerHTML = data[0].owner_id;
                 //born.innerHTML = data[0].dob;
                 //euthanize.innerHTML = data[0].dob;
                 //note.innerHTML = data[0].dob; 
            //} 
    },
    error: function (data) 
    {
        alert("fail");
    }    
  });   
}

//update mouse info
function updateMouseInfo(mouseid) 
{ 
  var ear_tag = $('#input_ear_tag').val();
  var age = $('#input_age').val();  
  var genotype = $('#input_genotype').val();
  var owner = $('#input_owner').val();

  var dataString = {auth_token: sessionStorage.auth_token, id: mouseid, mouse: 
  {ear_tag: ear_tag, age: age,}};
  var mh_url =  MH_HOST + '/mice/update.json';

  alert("Inside Mouse update Info");
  console.log('Data String='+ dataString.auth_token + 'Mouse id=' + dataString.id);
  $.ajax(
  {
    type: "POST",
    url: mh_url,
    data: dataString,
    dataType: "json",
    success: function (data) 
    {  
        document.getElementById('ear_tag').innerHTML = "<div" + ear_tag + "'>" + ear_tag + "</div>";
        document.getElementById('age').innerHTML = "<div" + age + "'>" + age + "</div>";
        document.getElementById('genotype').innerHTML = "<div" + genotype + "'>" + genotype + "</div>";
        document.getElementById('owner').innerHTML = "<div" + owner + "'>" + owner + "</div>";
    },
    error: function (data) 
    {
        alert("fail");
    }    
  }); 

}

ブラウザ コンソールに次のエラーが表示されます。

m_id=99 
Data String=pvHxzkr3cys1gEVJRpCDMouse id=undefined 

上記の場合、id は 99 である必要がありますが、未定義と表示されています。

4

1 に答える 1

1

次の方法でupdateMouseInfo関数を呼び出しています。

onClick="updateMouseInfo();"

getMouseInfo()呼び出したときに関数が取得するのと同じmouseid値が必要な場合updateMouseInfo()は、グローバル化する必要がありますgetMouseInfo()

それがうまくいくことを願っています。

于 2013-03-07T04:18:57.387 に答える