2011-03-16 139 views
0

我已经在我的iPhone应用程序中设置了基本的搜索功能。它可以在模拟器上使用 ,但是在设备上使用该应用程序时, 搜索按钮在点击时不会执行任何操作。我试过 无数的事情来让它工作(onsubmit等),但没有任何工作。 任何人都可以帮忙吗?搜索按钮在模拟器上工作,但不在设备上 - jQTouch和PhoneGap

这里是我的搜索功能和形式:

function recipeInfo(name, ingredients, url) { 
this.name = name; 
this.ingredients = ingredients; 
this.url = url; 
} 

var vIngredients = new Array(); 
vIngredients[0] = new recipeInfo("Ackee Pasta", "ackee", "ackpast.html"); 
vIngredients[1] = new recipeInfo("Ackee and Saltfish", "ackee saltfish", "acksalt.html"); 
vIngredients[2] = new recipeInfo("Jerk Chicken", "jerk", "jerkchick.html"); 

// do the lookup 
function getData(form) { 
    // make a copy of the text box contents 
    var inputText = form.Input.value 
    var list = $("#search-results"); 
    list.empty(); 
    // loop through all entries of vIngredients array 
    for (var i = 0; i < vIngredients.length; i++) { 
     // compare results 
     if (vIngredients[i].ingredients.indexOf(inputText) != -1) { 
     var found = true; 
     console.log(vIngredients[i].name); 
     //add to the list the search result plus list item tags 
     list.append (
     $("<li class='arrow'><a href='#' >" + vIngredients[i].name + "</a></li>") 
     ); 
     } 
    } 
} 
</script> 

<form id="search" action="" onsubmit="getData(this.form);"> 
    <ul class="rounded"> 
     <li><input type="search" name="Input" placeholder="Search..." onkeydown="if (event.keyCode == 13) getData(this.form)"></li> 
    </ul> 
    <ul class="edgetoedge" id="results"> 
     <li class="sep">Results</li> 
    </ul> 
     <ul class="edgetoedge" id="search-results"> 
    </ul> 
</form> 

我应该提到,它的工作原理在模拟器上的唯一理由是因为: 的onkeydown =“如果(event.keyCode == 13)的getData (this.form)“ 删除将使其停止在模拟器中工作。

回答

1

苹果“固定”在iOS 4.2中。对于获取提交事件的表单,必须有一个type =“submit”的输入标签。

+0

我通常会添加所需的标签,但隐藏的可见性。 这将允许iOS键盘上的默认按钮触发onsubmit事件。 – Shazron 2011-03-16 18:00:33

+0

感谢您的回复。我添加了type =“submit”的输入标签,但它没有区别。还有什么我可以尝试吗? – n00bz0rd2 2011-03-17 08:47:34

+0

我在我原来的帖子中提到,onkeydown =“if(event.keyCode == 13)getData(this.form)”使它在模拟器中工作。删除它将使它在模拟器中完全停止,无论我的提交输入是否存在。 – n00bz0rd2 2011-03-17 09:52:07

相关问题