在onclick之后使用.val在模拟器中工作但在设备上不工作

时间:2014-12-28 15:10:24

标签: jquery ios intel-xdk

我正在开发一个应用程序,其中包含一个包含学生列表的列表视图。当我点击学生时,应用程序应该提供一个预先填写该学生信息的表单,以供查看或编辑。它在模拟器中运行良好,但是当我在我的设备(iPad)上测试它时,点击学生的名字只会显示一个空白表单,但没有填充任何信息。

这是列表视图:

      $.each(jsonData.students, function() {
         myListContent += '<li id="'+ jsonData.students[i].id+'" style="background: #f0f0f0; border-left: solid 5px ' + jsonData.students[i].belt + ';"><a href="" onclick="checkStudent(this);">'+jsonData.students[i].firstname+' '+jsonData.students[i].lastname+ '<br>Last Seen: '+jsonData.students[i].lastseen+'</a></li>';
                   i++;
});

这是填充表单的代码:

  function checkStudent(el) {

   var id = $(el).closest('li').attr('id');
   $.getJSON("students.php", function(data){

       id--;
       var mystudent = JSON.stringify(data); 
       var viewjsonData = JSON.parse(mystudent);
       $('#view-firstname').val(viewjsonData.students[id].firstname);
       $('#view-surname').val(viewjsonData.students[id].lastname);
       $('#view-belt').val(viewjsonData.students[id].belt);
       $('#view-lastseen').val(viewjsonData.students[id].lastseen);
       $('#view-comments').val(viewjsonData.students[id].comments);
       $('#view-facebook').val(viewjsonData.students[id].facebook);
       $('#view-phone').val(viewjsonData.students[id].phone);
       $('#view-gender').val(viewjsonData.students[id].gender);
       $('#view-mathours').val(viewjsonData.students[id].mathours).this('refresh');

         });
       activate_subpage("#studentProfile");   

     };

我很困惑,因为它在模拟器中工作。任何提示将非常感激。感谢

1 个答案:

答案 0 :(得分:0)

问题是Safari对链接很挑剔。如果未设置href值,则链接不起作用。因为在这种情况下,在这种情况下,您不需要将链接设置为指向任何页面,因为它只是一个onclick,将其设置为#

<a href="#" onclick="checkStudent(this);">

使用#意味着当您点击链接时它不会去任何地方,但您必须确保您的onclick函数也返回false以防止页面向上滚动到顶部。

function checkStudent(el) {
    ...

    return false;
}