Я создал div в формате таблицы, который я использую для фильтрации параметров данных. У меня возникают проблемы с нажатием enter из текстового поля. Когда я нажимаю кнопку ввода, появляется предупреждение, но страница просто перезагружается и не фильтруется надлежащим образом с помощью любого из параметров. Может ли кто-нибудь объяснить мне, что происходит?Как вызвать функцию на вводе текста введите клавишу нажатой?
Пожалуйста, дайте мне знать, если я не понял или что-то объясню!
Это то, что выглядит мой фильтр вариант бар как:
HTML:
<form name="myform">
<center><table id="mykeyTable" border="1" cellspacing="10" cellpadding="10">
<center></center>
</td>
<!--Search bar -->
<tr>
<td colspan="4">
<center>
<form>
Starts With: <input type="text" id="myText" value=""><br>
</form>
</center>
</tr>
<!-- Site Options -->
<td><center>Site</center><br>
<input type="radio" name="siteID" onclick="updateSiteID(this.value)" value="Asc"checked>
<input type ='button' id='siteIDChosen' class='button-addAsc'/>
<br>
<input type="radio" name="siteID" onclick="updateSiteID(this.value)" value="Desc" >
<input type ='button' id='siteIDChosen' class='button-addDesc'/>
<br>
</input>
</form></td>
<!-- Status options -->
<td><center>Status
<br><br></center><input type="radio" name="siteStatus" onclick="updateSiteStatus(this.value)"value="Online"> Online<br><input type="radio" name="siteStatus" onclick="up\
dateSiteStatus(this.value)" value="Offline"> Offline<br><input type="radio" name="siteStatus" onclick="updateSiteStatus(this.value)" value="Both" checked> Both </form></td\
>
<!-- usage plan -->
<td><center>Usage Plan (in MB)</center>
<br><input type="radio" name="usagePlan" onclick="updateUsagePlan(this.value)" value="yesUsagePlan"> Data Plan<br><input type="radio" name="usagePlan" onclick="updateUsage\
Plan(this.value)" value="noUsagePlan"> No Data Plan<br><input type="radio" name ="usagePlan" onclick="updateUsagePlan(this.value)" value="bothUsagePlan" checked> All Plans\
</form></td>
</table>
<br>
<form><input type='button' id='filter' name='Submit' onclick='validate()' class='button-add' value=" Filter Selections"/></form>
</center>
</form>
</div>
Javascript:
<script>
$("#myText").keypress(function(event) {
if (event.which == 13) {
alert("You pressed enter");
validate();
}
});
$(document).keypress(function(event){
if(event.keyCode == 13){
validate();
}
});
function validate() {
//...
}
</script>
РЕШИТЬ:
Я использовал JQuery нажмите, чтобы вызвать такую же функцию, используемую в качестве кнопки.
$(document).keypress(function(event){
if(event.keyCode == 13){
$('#filter').click();
// validate(); doesn't need to be called from here
}
});
Ваше решение работает только в том случае, если я вхожу в документ, но если я сосредоточусь на inputText и нажимаю enter, он переопределяет метод $ ('# filter'). Click() 'и вызывает все другие методы доступны в скрипте. любая идея, в чем проблема? –