这是我的代码:
$("#addhash").submit(function(event) {
// Cancel the default action
event.preventDefault();
// Store the value and remove any white space or disallowed chars
var hash = $("#hashtoadd").val().replace(/\s/g, "").replace(/\W/g, "");
// Check if anything was entered
if(hash) {
// Add the hashtag to the array
hashes.push(hash);
localStorage.hashes = JSON.stringify(hashes);
var key = hashes.length - 1;
// Clear the form field
$("#hashtoadd").val("");
// Set others to inactive
$("#hashes").children().removeClass("active");
// Add it to the list and make it the active page
$("#hashes").append("<li class='active' id='" + key + "'><a href='#' class='close'>×</a><a class='hashtag' href='#" + hash + "'>#" + hash + "</a></li>");
// Load the tweets
getTweets(hash);
}
});
此代码仅适用于 Chrome。似乎event.preventDefault();
连开火都没有。我试图在一开始就设置一个警告对话框,但这也没有显示,这让我相信它甚至永远不会进入这里。我试过只使用一个click ()
事件,也只使用一个submit()
事件,但这些也不起作用。
编辑:我认为问题在于事件处理程序永远不会在其他浏览器中被调用。我已经更新了代码以反映它当前的状态。仍然无法正常工作。
EDIT2:根据要求,这是表单本身:
<form class="navbar-form pull-right" id="addhash">
<div class="input-prepend input-append">
<span class="add-on">#</span>
<input type="text" placeholder="tag" tabindex="1" id="hashtoadd">
<button class="btn" type="submit" href="#" id="submit"><i class="icon-plus"></i></button>
</div>
</form>