我想在使用以下内容提交表单之前更改输入文本框的值:
$('#form1').submit(function () {
$('#MyTextBox').val('test');
});
但是,在服务器端调试btnSubmit_Click方法时,Request.Form [MyTextBox.UniqueID]和MyTextBox.Text都包含#MyTextBox的“旧”值。看来表单是在javascript完成运行之前提交的。知道为什么会这样吗? javascript肯定会运行,因为如果我添加一个警报,它会弹出。如果不使用表单提交功能,我使用单击按钮,它工作,新值发布到服务器:
$('#btnSubmit').click(function () {
$('#MyTextBox').val('test');
});
提交按钮定义为:
<asp:Button ID="btnSubmit" runat="server" CausesValidation="True"
Text="Submit" OnClick="btnSubmit_Click" ValidationGroup="submitRequest" />
另外,在单独的注释中,在服务器端方法中使用Request.Form [MyTextBox.UniqueID]或MyTextBox.Text是否更好?或者它无关紧要?
答案 0 :(得分:4)
我不确定这与asp.net有什么关系,但这个jquery对我来说很好:http://jsfiddle.net/pTuL5/。
$('#MyForm').submit(function ()
{
$('#MyForm input[name="q"]').val('test');
$('#MyForm').submit();
return false;
});
告诉我它是怎么回事
答案 1 :(得分:0)
简单的解决方案,但不要设置按钮类型“提交”。
function submitButton() {
$('#field').val('sdasdasd');
$('#form').submit();
return false;
}
如果按照自己的方式使用,但我认为它不会起作用。
$('#form1').submit(function () {
$('#MyTextBox').val('test');
$('#fomr1').submit();
return false;
}
答案 2 :(得分:0)
您可能在页面加载时遇到一些javascript错误。确保在页面加载时没有js错误和以下代码。
$(function(){
$('#MyForm').submit(function ()
{
$(this).find('input[name="q"]').val('test');
return true;
});
});
答案 3 :(得分:0)
这应该这样做:
$('#form1').one('submit', function(event)
{
event.preventDefault();
$('#MyTextBox').val('test');
$('#form1').submit();
});
让我知道..
答案 4 :(得分:0)
确保未禁用要更改的元素(输入),如果已禁用,则会发送原始值,但如果启用,则会在帖子中发送新值。
答案 5 :(得分:0)
您不应在onSubmit()函数处理程序中使用submit()。只要做你想做的事,“return true”就会提交表格:
(准备好文件)
$('#yourform').submit(function()
{
$("#yourInputYouWantTochange").prop('checked', true); //If radio or checkbox
$("#yourInputYouWantTochange").val('whatever'); //If something else
return true;
});