jquery submit - 在发布之前更改输入值

时间:2011-08-14 20:41:38

标签: jquery asp.net

我想在使用以下内容提交表单之前更改输入文本框的值:

$('#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是否更好?或者它无关紧要?

6 个答案:

答案 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;                
            });