使用javascript动态创建时传递表单信息

时间:2011-08-05 16:33:57

标签: javascript

我试图通过动态创建的表单传递用户名和密码,但它没有这样做。这是JS。动态创建的表单只有在url包含某些url词干(location.pathname ... 3rd“if”语句)时才有任何想法?这让我发疯了。

function PostToAccountManagement() {
    var userName = $('#Username').val();
    var passWord = $('#Password').val();

    if (userName == "")
        $('#UsernameError').html('Please enter a valid username');
    else
        $('#UsernameError').html('');

    if (passWord == "")
        $('#PasswordError').html('Please enter a valid password');
    else
        $('#PasswordError').html('');

    if (location.pathname.search(/\/info/i) == 0 ||
        location.pathname.search(/\/blogs/i) == 0 ||
        location.pathname.search(/\/groups/i) == 0 ||
        location.pathname.search(/\/askquestion/i) == 0) {
            $('<form id="Form1"> </form>').prependTo('body');
            if (userName != "" && passWord != "") {
                document.cookie = "ReturnUrl" + "=" + window.location.href;
                $('#Form1').eq(0).attr('action', '/account/logon');
                $('#Form1').eq(0).attr('method', 'post');
                $('#Form1').submit();
            }
    }
    if (userName != "" && passWord != "") {
        document.cookie = "ReturnUrl" + "=" + window.location.href;
        $('#Form1').eq(0).attr('action', '/account/logon');
        $('#Form1').eq(0).attr('method', 'post');
        $('#Form1').submit();
    }

}

1 个答案:

答案 0 :(得分:0)

首先在第3个“if”中创建的表单。看起来你已经有一个id为“Form1”的表单,这不太好。

其次,当第3个“if”被触发时,你无法获得用户名和密码,因为你提交的表单没有这样命名的元素,它实际上没有。尝试添加至少一些正确命名的隐藏输入。