2

嗨,我在执行以下操作时遇到错误。

当我单击以下代码中的“保存”按钮时:

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

我想从 getMouseInfo() 函数调用 mouse_id 参数到 updateMouseInfo() 并且我收到 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();"

如果您想在调用时具有相同的 mouseid 值,该值由getMouseInfo()函数获取updateMouseInfo(),则必须全球化getMouseInfo()

希望它有效。

于 2013-03-07T04:18:57.387 回答