我目前的应用程序可以防止在第一次尝试时提交空白和空白输入。如果初始输入有效,则执行搜索。如果它无效,表单将变为“无响应”,并且不能进行其他尝试。如何修改我的代码,理想情况下使用普通JavaScript,允许多次尝试而不重新加载页面?使用Javascript处理表单提交 - 如何给用户另一个机会?
// welcome.js
function prepareEventHandlers() {
document.getElementById("new_search").onsubmit = validateForm
}
function validateForm() {
var q = document.getElementById("search_q").value;
var trimmed_q = q.trim();
if (trimmed_q.length < 1) {
return false;
} else {
return true;
}
}
window.onload = function() {
prepareEventHandlers();
}
// segment from home.html.erb
<%= form_for :search, url: {action: "results"}, html: {id: "new_search", method: "get"} do |f| %>
<%= f.text_field :q, placeholder: "Where to?", html: {id: "search_q"} %>
<%= f.submit "Search" %>
<% end %>
// rails generated html for home.html.erb -- omitted 30 lines of scripts from head
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<!DOCTYPE html>
<html>
<head>
<script src="welcome.js" type="text/javascript" charset="utf-8">
</script>
</head>
</head>
<body>
<div class="homeheader">
</div>
<div class="searchbar">
<h3 class="col-md-2"></h3>
<h3 class="col-md-10">
<form id="new_search" action="/results" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" />
<input placeholder="Where to?" html="{:id=>"search_q"}" type="text" name="search[q]" id="search_q" />
<input type="submit" name="commit" value="Search" data-disable-with="Search" />
</form></h3>
</div>
</div>
</body>
</html>
</body>
</html>
什么使输入无效?也许赶上所有这些例外,就像你已经捕获了空白和空的异常? –
你可以运行你的应用程序,然后在这里发布完整的html代码??(通过浏览器的“查看页面源代码”) –
为了我当前的应用程序的目的,“无效”输入是任何空白输入或包含全部空白的输入。我目前不想执行任何其他检查,只是为了启用多次提交尝试。 – MJuliet