在函数内创建一个类

时间:2017-03-13 23:19:08

标签: javascript html5

我在HTML文件中有这个部分来获取新用户的电子邮件和密码并创建新的个人资料:

<form name="userInfo"> 
    <fieldset>
        <legend>Create a new account</legend> 

        <div>
            <label>Email:</label>   
            <input type="email" name="userEmail" required="required" /> 
        </div> 

        <div>
            <label>Password:</label>    
            <input type="password" name="userPass" required="required" /> 
        </div> 

        <input type="submit" name="submit" value="Submit" /> 
    </fieldset> 
</form> 

现在,我想同时使用电子邮件和密码来创建个人资料。 profile类需要同时作为参数/参数:

function profile(email, password){
    this.email = email; 
    this.pass = password; 
}

function createProfile(event){
    email = event.target["userEmail"].value; 
    password = event.target["userPass"].value; 
    var newProfile = profile(email, password);  
}

var email; 
var password; 
document.forms["userInfo"].addEventListener("submit", createProfile); 

当然,一旦函数&#39; createProfile&#39;终止。在C中,我们习惯于使用malloc,calloc或JS中没有的whatnot来解决这个问题。我需要遵循的最直接的方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用jQuery serialise / serialise数组,该数组在提交

上发送所有formdata

&#13;
&#13;
$(function(){
  $( ".userInfo" ).on( "submit", function( event ) {
  event.preventDefault();
 var result=$( this ).serialize().split('&');
    alert(result)
    alert(result.length)
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form name="userInfo"> 
    <fieldset>
        <legend>Create a new account</legend> 

        <div>
            <label>Email:</label>   
            <input type="email" name="userEmail" required="required" /> 
        </div> 

        <div>
            <label>Password:</label>    
            <input type="password" name="userPass" required="required" /> 
        </div> 

        <input type="submit" name="submit" value="Submit" /> 
    </fieldset> 
</form>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如@Rob所述,您应该从createProfile()返回配置文件对象,并且将这些变量保持为全局是一件坏事。

你可以试试这样的事情

function createProfile(event){
  var profile = {};//Empty object

  profile.Email = event.target["userEmail"].value; 
  profile.Password = event.target["userPass"].value; 

  return profile;
}

var newProfile = createProfile(eventFired);//Here you will have your profile object to be posted

对于这种方法,jquery不是必要的,但它也是一个不错的选择。