2015-05-30 2 views
0

Я пытаюсь выполнить почтовый вызов для страницы входа. Пользователь вручную вводит имя пользователя/пароль. Тем не менее, я хочу, чтобы в приведенном ниже поле было задано имя = имя пользователя, когда пользователь вводит свое имя пользователя.HTML-форму после вызова скрытого поля

У меня эти поля ниже. И у меня есть скрытое поле, и я хотел бы заменить бит имени пользователя на имя пользователя, которое пользователь вводит вручную.

<input class="form-control" type="hidden" required name="username" placeholder="Username"> 
<input class="form-control" type="password" required name="password" placeholder="Password"> 

<input class="form-control" type="hidden" required name="arg" placeholder="name"> 

Поэтому он должен быть

username=stack 
password=userset 
arg='name=stack' 
+0

Вопрос не ясно, хотите ли вы изменить входной 'заполнитель arg' в или что? –

ответ

0

Вы можете попробовать использовать jQuery. Здесь у меня есть пример, когда пользователь еще не отправил форму.

$(document).ready(function() { 

    $("input[name='username']").keyup(function() { 
     $("input[name='arg']").val("'name=" + $(this).val() + "'"); 
    }); 

}); 

Если вы действительно хотите получить значение $ _POST, вы должны сериализовать их, используя некоторые PHP.

<script type="text/javascript"> 
    var $post = <?php echo json_encode($_POST); ?>; 
</script> 

Затем вы можете получить доступ к своей переменной, используя $ post ["username"]. Но я не понимаю, почему вы будете использовать это решение, поскольку вы можете просто использовать обычный php для этого.

В коде это должно выглядеть следующим образом:

<script type="text/javascript"> 

    $(document).ready(function() { 
     $('form#form1').submit(function(){ 
      $.ajax({type: "Post", 
        url: $('form').attr('action'), 
        data: $(this).serialize(), 
        success: function(data, status, xhr) { 
         alert("Login successful. Please press OK to be redirected. Redirecting in 5 seconds."); 
         window.setTimeout(function(){window.location.href = "/login"},5000);}, 
         error: function(data, status, xhr) { 
          $('form').trigger("reset"); 
          alert("Failed to login. Please try again."); 
         } 
        }); 

       return false; 
       alert("AJAX request successfully completed"); 
      }); 



      $("input[name='username']").keyup(function() { 
       $("input[name='arg']").val("'name=" + $(this).val() + "'"); 
      }); 
    }); 

</script> 
0

Если я правильно понять, что вы хотите сделать, это звучит, как вы хотите, чтобы получить input объект DOM и изменить его заполнитель атрибута каждый раз, когда в пользователь меняет значение в поле ввода имени пользователя.

Вы можете захватить элементы DOM с помощью getElementsByName('NAME')[0] (предполагая, что имена уникальны или даже лучше используют идентификаторы, чтобы убедиться, что они уникальны).

Затем присоедините функцию для прослушивания изменений и обмена в placeholder «s новое значение с помощью inputDomObject.addEventListener("change", functionToHandleChanges);

Вы можете установить значение на объект DOM сторон исходного placeholder (и, следовательно, на странице) с помощью placeholderDomObject.setAttribute("placeholder", "thingToSetItTo");

Если вам нужно уточнение, просто оставьте комментарий :)

+0

Итак, у меня есть поле имени пользователя и поле arg. Поле Username отображается, а arg скрыт. Если человек входит в стек как имя пользователя. Я хочу, чтобы скрытое поле было введено как name = stack как скрытое. Это возможно? – user1676735

+0

Да, как описано выше в JavaScript, просто добавьте '" name = "к значению, которое вы захватите в функции обработчика событий onchange. Вы можете использовать поле .value для объекта DOM ввода имени пользователя, чтобы получить введенное значение. (Я не уверен в вашем уровне JavaScript, это описание в порядке?) –

+0

Я не совсем уверен, правильно ли я вас понимаю. Можете ли вы записать его в коде? Я не испытываю в js. – user1676735

Смежные вопросы