我正在为我的网站创建一些分页,并希望使用输入元素在页面之间导航。
像下面的例子:
输入需要按下“return”键才能触发脚本。
如果输入的值不在范围内,则会触发警报。例如,如果有 32 页,“请输入 1 到 32 之间的值”
这可以通过检测页面范围内的值变化并重定向到该页面来使用 jQuery 或 javascript 来完成吗?
我正在尝试在 Getty Images 上创建相同的设备:
我正在为我的网站创建一些分页,并希望使用输入元素在页面之间导航。
像下面的例子:
输入需要按下“return”键才能触发脚本。
如果输入的值不在范围内,则会触发警报。例如,如果有 32 页,“请输入 1 到 32 之间的值”
这可以通过检测页面范围内的值变化并重定向到该页面来使用 jQuery 或 javascript 来完成吗?
我正在尝试在 Getty Images 上创建相同的设备:
您可以使用get表单和不带 javascript 的 html5 来执行此操作:
<form class="pageNumberForm" type="GET">
<input type="number" name="page" class="pageNumber" min="1" max="6" value="1" />
</form>
如果您使用的是 php,您可以填写最大页面和当前页面:
<form class="pageNumberForm" type="GET">
<input type="number" name="page" class="pageNumber" min="1" max="[page maximum]" value="[current page]" />
</form>
您可以添加 jquery validate 来验证不支持 html5 的浏览器的表单。
编辑1:
或者你可以添加这个 jquery 代码来做一些简单的验证,就像 getty 一样:
$('.pageNumberForm').submit(function() {
var pageInput = $(this).children('.pageNumber').first();
var pageInputValue = pageInput.val();
if (pageInputValue < pageInput.attr('min') || pageInputValue > pageInput.attr('max') || !pageInputValue.match(/\d+/)) {
alert('Please enter a value between ' + pageInput.attr('min') + ' and ' + pageInput.attr('max'));
return false;
}
});
要通过“return”键运行页面更改脚本,您应该使用$('input').on('keypress')
事件并检查event.which
属性(“return”应该是“13”)。
我的网站是 ASP,我使用了以下代码,它现在可以工作了。
<form type="get" onchange="return false">
<input type="number" name="page" id="page" min="1" max="5" value="1" />
我会尝试为不支持 HTML5 的浏览器添加一些 jQuery 验证,但它适用于 IE8,所以我对此很满意。