我对 JS 世界很陌生。我所做的是,创建了一个表单,在其中我将表单字段值拉入变量并将它们分配给对象(obj),我再次将“obj”对象分配给“param”对象,console.log(param )给我未定义。任何帮助将不胜感激
<form accept-charset="UTF-8" id="user-profile-form" method="post" action="" enctype="multipart/form-data" autocomplete="off" novalidate="novalidate"><div><div class="bd-section bd-section-user-profile">
<fieldset data-user-email="" class="fs-email-name">
<h3>Name and Email</h3>
<div id="edit-field-first-name" class="field-type-text field-name-field-first-name field-widget-text-textfield form-wrapper">
<div id="field-first-name-add-more-wrapper">
<div class="form-item form-type-textfield form-item-field-first-name-und-0-value">
<label for="edit-field-first-name-und-0-value">First Name <span title="This field is required." class="form-required">*</span></label>
<input type="textbox" maxlength="14" size="60" value="" name="field_first_name" id="edit-field-first-name-und-0-value" class="text-full form-text required">
<div class="faux-label" style="display: none;">First Name</div>
</div>
</div></div>
<div id="edit-field-last-name" class="field-type-text field-name-field-last-name field-widget-text-textfield form-wrapper">
<div id="field-last-name-add-more-wrapper"><div class="form-item form-type-textfield form-item-field-last-name-und-0-value">
<label for="edit-field-last-name-und-0-value">Last Name <span title="This field is required." class="form-required">*</span></label>
<input type="text" maxlength="14" size="60" value="" name="field_last_name[und][0][value]" id="edit-field-last-name-und-0-value" class="text-full form-text required">
<div class="faux-label" style="display: none;">Last Name</div>
</div>
</div></div>
<div class="form-item form-type-textfield form-item-mail">
<label for="edit-mail">E-mail address <span title="This field is required." class="form-required">*</span></label>
<input type="text" class="form-text required email" maxlength="254" size="60" value="" name="mail" id="edit-mail">
<div class="faux-label" style="display: none;">email@email.com</div>
</div>
</fieldset>
</div>
<div id="edit-actions--2" class="form-actions form-wrapper">
<input type="submit" class="form-submit" value="Save Changes" name="op" id="edit-submit-ca">
<input type="submit" class="form-submit" value="Delete your account" name="op" id="edit-cancel"><a href="/" class="edit-cancel-changes">Cancel</a></div></div>
</form> </div><!-- .col-left -->
</div>
<script>
function user_pref_data(){
var FirstName;
var LastName;
var email;
var param={};
var obj = {};
$("#edit-field-first-name-und-0-value").focusout(function(){
FirstName = this.value;
console.log(FirstName)
});
$("#edit-field-last-name-und-0-value").focusout(function(){
LastName = this.value;
});
$("#edit-mail").focusout(function(){
email = this.value;
});
obj.frstnam = FirstName;
obj.lstnam = LastName;
obj.eml = email;
param.param = obj;
console.log(param);
}
$("input#edit-submit-ca").on('click', function(event){
//alert("hi")
user_pref_data();
return false;
});
});
</script>
最佳答案
var obj = {};
function user_pref_data(){
var param={};
var FirstName;
var LastName;
var email;
param.param = obj;
console.log(param);
}
$("input#edit-submit-ca").on('click', function(event){
//alert("hi")
user_pref_data();
return false;
});
$("#edit-field-first-name-und-0-value").focusout(function(){
FirstName = this.value;
obj.frstnam = FirstName;
console.log(FirstName);
});
$("#edit-field-last-name-und-0-value").focusout(function(){
LastName = this.value;
obj.lstnam = LastName;
});
$("#edit-mail").focusout(function(){
email = this.value;
obj.eml = email;
});
对您的代码进行了一些更改。添加这个。 无法在另一个函数中定义焦点事件函数以使它们发生。
由于您的函数 user_pref_data()
仅在提交操作时被调用,因此这些焦点事件从未发生。
关于javascript - 尝试将变量分配给 JS 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23797631/