我有一个带ID的字符串,我希望将视图中的字符串(取决于按下的按钮)传递给两个不同的函数。
我希望在隐藏输入中使用一个或两个带有字符串的表单。还有两个按钮:“做方法A”和“做方法B”。
我尝试用JQuery将字符串填充为两种形式,但只填充了第一个输入。我用$(".classname:first")
和$(".classname:last")
尝试了它(由于某种原因,HTML帮助器忽略了我对类或id的修改)。
如何根据我按下的按钮调用不同的功能?
或者如何使用相同的类名填充两个单独的输入?
或者如何在JQuery中访问选择器的子节点?
答案 0 :(得分:0)
按如下方式设置HTML
:
<form id="hidform" action="/" method="post">
@Html.HiddenFor(m => m.str, "value=\"0\">
<input id="method-a" data-action="methoda" type="submit" value="do method a">
<input id="method-b" data-action="methodb" type="submit" value="do method b">
</form>
正如您所看到的,该操作未在我的表单上设置,看起来它只会发布到您的主页(这不是您想要的)。但是,如果您查看input
代码,我已添加了数据属性data-action
。数据属性不是此解决方案的要求,这只是我的偏好。然后是jQuery
:
$(document).ready(function() {
$('#hidform input').click(function(e) {
e.preventDefault();
var action = $(this).data('action');
$('#hidform').attr('action', action).submit();
});
});
这会阻止提交按钮的默认操作,将data-action
的值应用到表单的action
属性,然后提交表单。
答案 1 :(得分:-1)
我在提交按钮和隐藏输入周围添加了一个div,插入了标记onmousemove="$(this).find('#str').val(ids)
。
就像那样:
@using(Html.BeginForm("MethodA", "XYZ", FormMethod.Post, "name=\"hidform\" id=\"hidform\"")) {
<div onmousemove="$(this).find('#str').val(ids)">
<input type="submit" value="do method A"/>
@Html.HiddenFor(m => m.str, "value=\"0\"")
</div>
}
@using(Html.BeginForm("MethodB", "XYZ", FormMethod.Post, "name=\"hidform\" id=\"hidform\"")) {
<div onmousemove="$(this).find('#str').val(ids)">
<input type="submit" value="do method B"/>
@Html.HiddenFor(m => m.str, "value=\"0\"")
</div>
}