2015-12-02 1 views
0

Я работаю над сообщением формы html, чтобы перенаправить людей на сайт с помощью единого входа. Имя пользователя напрямую связано с реестром. Однако я не уверен, почему значение не может вставить в значение формы. Может кто-нибудь, пожалуйста, посоветуйте. Очень признателен.как вставить возвращаемую переменную из функции в HTML-форму

<html> 
<head> 
<body> 
<script> 

var username; 
var test; 

function submitForm() { 
    document.forms["ciqForm"].submit(); 
} 

function getUsername() { 
    var WshShell = new ActiveXObject("WScript.Shell"); 
    username = WshShell.RegRead("HKEY_CURRENT_USER\\Software\\Plugin\\username"); 
    // username = "[email protected]" 
    return username; 
} 


// document.getElementbyName('extRedirUserName').value=getUsername(); 
document.forms['myForm'].elements['extRedirUserName'].value=getUsername(); 

</script> 
<body onload="submitForm()"> 
    <h1>Redirecting.</h1> 
    <form id="myForm" name="myForm" method="POST" action="https://www.somewebsite.com"> 
     <input type="hidden" id="hello" name="extRedirUserName" value="" /> 
     <input type="hidden" name="extRedirPassword" value= "password" /> 
    </form> 
</body> 
</head> 

`

+0

вы отправляете форму на нагрузке, '<тело OnLoad = "SubmitForm()">' – Ramanlfc

ответ

0

Может быть, потому что вы не используете правильную форму ID/Name?

document.forms["ciqForm"].submit(); 

но здесь

form id="myForm" name="myForm" method="POST" 
0

DOM-еще не полностью загружены, когда вы работаете document.forms [ ''] Myform элементы [ 'extRedirUserName'] = значение GetUserName()..;

Попробуйте добавить его в качестве первой строки в функции submitForm (которая выполняется после того, как документ уже был). Я предполагаю, что вы уже проверили, что имя пользователя получено с помощью этого метода.

0

С некоторыми изменениями:

 var username; 
     var test; 

     function submitForm() { 
      document.getElementById("myForm").submit();//you can change this with your code 
     } 

     function getUsername() { 
      var WshShell = new ActiveXObject("WScript.Shell"); 
      username = WshShell.RegRead("HKEY_CURRENT_USER\\Software\\Plugin\\username"); 
      // username = "[email protected]" 
      return username; 
     } 


     // document.getElementbyName('extRedirUserName').value=getUsername(); 
     document.forms['myForm'].elements['extRedirUserName'].value=getUsername(); 

    submitForm();//call here 
     </script> 
     <body > 
      <h1>Redirecting.</h1> 
      <form id="myForm" name="myForm" method="POST" action="https://www.somewebsite.com"> 
       <input type="hidden" id="hello" name="extRedirUserName" value="" /> 
       <input type="hidden" name="extRedirPassword" value= "password" /> 
      </form> 
     </body> 
     </head> 
+0

Благодаря Ананд. Тем не менее, я пробовал внесенные вами изменения, но по какой-то причине имя пользователя возвращается, все еще показывая «нулевое» значение. Вы знаете, как мне изменить код, чтобы полностью загрузить DOM, прежде чем получить имя пользователя? –

+0

Я уверен, что это связано с 'getUsername()' Убедитесь, что ваш запрос верен. –