在提交时修改表单输入值

时间:2016-01-01 19:25:47

标签: php jquery html forms

我不确定如何标题,但这就是我要做的事情。

我有一个登录webmail的表单,我没有访问webmail的权限 - 它只是将表单输入发布到网站上,而webmail服务器从那里发送它。

登录此页面的每个人都将使用相同的电子邮件扩展名(例如“@ myemail.com”),所以我想省去每次打字的麻烦,而不是只能写“迈克”和表格将自己添加“@ myemail.com”。

我可以将此表单发布到一个中间地址的php页面,将“mike”+“@ mymail.com”粘在一起并将此信息发布到网络邮件中?

或者有没有更简单的方法来创建另一个页面?

<form name="loginForm" action="http://webmail.emailsrvr.com/login.php" method="POST" target="_blank">
<input type="hidden" name="js_autodetect_results" value="SMPREF_JS_OFF">
<input type="hidden" name="just_logged_in" value="1">
<input type="hidden" name="type" value="v3">
<input type="hidden" name="useSSL" id="useSSL" value="">

<input type="email" name="user_name" placeholder="Username" required autofocus>
<input type="password" name="password" placeholder="Password" required>

<label for="remember"><input type="checkbox" name="remember">Remember my info</label>
<button type="submit">Sign In</button>

</form>

我想获取此处输入的值...

<input type="email" name="user_name" placeholder="Username" required autofocus>

...并为其添加“@ myemail.com”等扩展程序,然后发布。

有什么想法吗?在此先感谢您的帮助。

我可以做这样的事情吗?

第1页 - 输入用户名和密码......

<input type="text" name="send_email" placeholder="Username" required autofocus>
<input type="password" name="send_password" placeholder="Password" required>

<label for="remember"><input type="checkbox" name="remember">Remember my info</label>
<button type="submit">Sign In</button>
</form>

第2页 - PHP使用用户名并添加“@ myemail.com”并发送表单...

<?php
    $form_email = $form_password = "";

    if (!empty($_POST['send_email']) && !empty($_POST['send_password'])) { 
        $form_email = $test($_POST['send_email']) . '@fountaincreations.ca';
        $form_password = $test($_POST['send_password']); 

        echo '<form name="loginForm" action="http://webmail.emailsrvr.com/login.php" method="POST" target="_blank">';
        echo '<input type="hidden" name="js_autodetect_results" value="SMPREF_JS_OFF">';
        echo '<input type="hidden" name="just_logged_in" value="1">';
        echo '<input type="hidden" name="type" value="v3">';
        echo '<input type="hidden" name="useSSL" id="useSSL" value="">';
        echo '<input type="hidden" name="user_name" value="' . $form_email . '">';
        echo '<input type="hidden" name="form_password" value="' . $form_password . '">';
        echo '</form>';
    } else { 
        echo '<p style="text-align:center;padding:40px 20px;">Please go back and try again.</p>';
    }

    function test($data) {
        $data = strtolower(data);
        $data = trim($data);
        $data = stripslashes($data);
        $data = htmlspecialchars($data);
        return $data;
    }
?>

如何告诉PHP自动提交表单?

如果我使用jQuery,这就是我所拥有的:

它目前无效。

HTML:

<div class="box top">
<form name="loginForm" action="http://webmail.emailsrvr.com/login.php" method="POST" target="_blank">
<input type="hidden" name="js_autodetect_results" value="SMPREF_JS_OFF">
<input type="hidden" name="just_logged_in" value="1">
<input type="hidden" name="type" value="v3">
<input type="hidden" name="useSSL" id="useSSL" value="">
  <div class="inner">
    <div class="inner-row"><input type="text" name="user_name" placeholder="First Name" required autofocus></div>
    <div class="inner-row"><input type="password" name="password" placeholder="Password" required></div>
    <div class="inner-row">
        <div class="inner-col col-2-4"><label for="remember"><input type="checkbox" name="remember">Remember my info</label></div>
        <div class="inner-col col-2-4"><button type="submit">Sign In</button></div>
    </div>
  </div>
</form>
</div>
<div class="box bottom">
    <div class="inner">
        <div class="inner-row"><p>Already signed in? <a href="http://webmail.emailsrvr.com/a/webmail.php" target="_blank"><b>Go to your inbox.</b></a></p>
    </div>
</div>

JS:

<script type="text/javascript">
  $(document).ready(function(){
    $("button[type='submit']").on('click', function(e){
        e.preventDefault();
        var userEmail = $.trim($("input[name='user_name']").val());
        $("input[name='user_name']").val(userEmail+"@fountaincreations.ca");
        $("form[name='loginForm']").submit();
    });
  }); 
</script>

2 个答案:

答案 0 :(得分:1)

我认为这会是这样的,希望这会对你有所帮助。我在这段代码中所做的是,首先我停止通过e.preventDefault();提交表单,然后我将获取所需输入的值并通过附加“@ mymail.com”将其赋值回来。

$(document).ready(function(){
    $("button[type='submit']").on('click', function(e){
        e.preventDefault();
        var userEmail = $.trim($("input[type='email']").val());
        $("input[type='email']").val(userEmail+"@mymail.com");
        $("form[name='loginForm']").submit();
    });
});

答案 1 :(得分:1)

我想如果你想附加用户名+&#34; @ mymail.com&#34; to useremail字段,这是我的建议: 1#创建输入user_email(只需隐藏此字段)

<input type="hidden" name="user_email" id="user_email" placeholder="User Email">

2#在下面添加js

$('#user_name').on('input', function() {
   username = this.value+'@myemail.com';
   $('#user_email').val(username);
});

here example