我正在尝试在表单提交按钮中添加javascript代码。
$('#BtExcluir').click(function(event){
var urlParams = event.target.href.split("/");
if (! confirm("Tem certeza que deseja excluir o usuário?"))
return false;
});
上面的代码适用于<a>
元素,但它不适用于输入提交按钮。求你帮我!
我的完整代码: @ { Page.Title =“EditarUsuário”;
// Inicializar variáveis.
int selectedUserId = -1;
var email = "";
var nome = "";
List<string> statusMessages = new List<string>();
// Get the values from the REST-style URL parameters
selectedUserId = UrlData[0].AsInt(-1);
if (selectedUserId < 0){
ModelState.AddFormError("Erro: Especificado ID de usuário inválido");
}
if(Request["action"] == "Alterar"){
nome = Request.Form["nome"];
email = Request.Form["email"];
// Valida o nome do usuário
if (nome.IsEmpty())
{
ModelState.AddError("nome","Um nome deve ser informado.");
}
// Valida o endereço de email
if (email.IsEmpty())
{
ModelState.AddError("email","Um endereço de email deve ser informado.");
}
if (!email.IsEmpty() && !Functions.IsValidEmail(email)) {
ModelState.AddError("email","O endereço de email informado não é válido.");
}
if (ModelState.IsValid)
{
// Verifica se o email está cadastrado
var user = Usuario.PesquisarEmail(email,selectedUserId);
if (user == null) {
if (Usuario.AlterarUsuario(nome, email, selectedUserId) > 0)
{
statusMessages.Add(String.Format("Alterado usuário de {0}",nome));
}
else
{
ModelState.AddFormError(String.Format("Erro: Não foi possível alterar o usuário de "
+ "{0}", nome));
}
}else{
ModelState.AddFormError("O endereço de email informado já está em uso.");
}
}
}
else if(Request["action"] == "Excluir"){
if (Usuario.ExcluirUsuario(selectedUserId) > 0){
statusMessages.Add("Excluído usuário de ID = " + selectedUserId.ToString());
selectedUserId = -1;
}
else{
ModelState.AddFormError("Erro: Não foi possível excluir o usuário de ID = "
+ selectedUserId.ToString());
}
}
else if(Request["action"] == "Voltar para Lista"){
Response.Redirect("~/Admin/Usuarios/Listar.cshtml",false);
}
else if(Request["action"] == "Novo"){
Response.Redirect("~/Admin/Usuarios/Cadastrar",false);
}
}
答案 0 :(得分:0)
你说的是event.target.href
但是输入按钮没有href
属性 - 这是一个锚元素事物(显然,它对你的<a>
有效)。因此event.target.href
未定义,因此没有.split()
方法。这是一个错误,执行将在该行停止,永远不会到达if (!confirm(...
。
鉴于您实际上从未使用urlParams
变量,您只能删除该行。
否则,href
的等效形式为action
,所以可能是这样的:
$('#BtExcluir').click(function(event){
var urlParams = $(this).closest("form")[0].action.split("/");
if (! confirm("Tem certeza que deseja excluir o usuário?"))
return false;
});
另请注意,在事件处理程序this
中将引用该事件所属的元素 - 它比说event.target
更简单。
答案 1 :(得分:0)
第一。我看到您有submit
,edit
,delete
和new
选项的back to the list
按钮。您不会使用相同的默认form
action
提交所有这4个。
因此,您必须在event.preventDefault();
按钮功能中添加submit
,或者通过常用按钮替换它们,您可以手动处理重定向。
第二。如果您有一个带链接的完全工作函数,请将其回滚到链接版本以节省大量工作。 =]
第三。不要忘记在Portuguese Stack Overflow中提交Area 51提案 (无耻的推广)
如果您遇到无法解决的问题,我也可以建立一个聊天室。 =]