2011-08-05 91 views
1

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

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(); 
    } 

} 

回答

0

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

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

+0

谢谢,这只是因为包含这些网址的网页没有表单,因此我为那些特定的网页动态创建了它。我会看看我是否可以在其中放入一些输入字段。谢谢 –