javascript 克隆文本字段并添加一个字符串
javascript clone textfield with a string added
我有一个包含 4 个文本字段的表单。 JS 确保有效填写名字、姓氏和全名……但我希望字段图片文件包含全名值,扩展名为 .jpg。允许我在需要时手动更改图片文件字段。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="form">
<label for="fname">First Name</label>
<input type="text" id="fname" />
<hr>
<label for="lname">Last Name</label>
<input type="text" id="lname" />
<hr>
<label for="fullname">Full Name</label>
<input type="text" id="fullname" />
<label for="picturefile">picture file</label>
<input type="text" id="picturefile" />
</form>
javascript代码
jQuery(document).ready(UserInfoCtrl);
function UserInfoCtrl($)
{
var self = this;
var form = $('#form');
var fname = $('#fname');
var lname = $('#lname');
var fullname = $('#fullname');
self.updateFirstName = function(firstName) {
var _lname = lname.val() || (fullname.val() || '').trim().split(' ').pop();
fullname.val(firstName + ' ' + _lname);
};
self.updateLastName = function(lastName) {
var _fname = fname.val() || (fullname.val() || '').trim().split(' ').shift();
fullname.val(_fname + ' ' + lastName);
};
self.updateFullName = function(fullName) {
var _fullname = (fullName || '').trim().split(' ');
fname.val((_fullname[0] || ''));
lname.val((_fullname[1] || ''));
};
self.onFieldChange = function(e) {
switch(this.id) {
case 'fname':
self.updateFirstName(this.value);
break;
case 'lname':
self.updateLastName(this.value);
break;
case 'fullname':
self.updateFullName(this.value);
break;
}
};
fname.add(lname).add(fullname).change(self.onFieldChange);
form.submit(function(e) {
e.preventDefault();
return false;
});
}
我认为你需要做类似的事情
<script>
jQuery(document).ready(UserInfoCtrl);
function UserInfoCtrl($)
{
var self = this;
var form = $('#form');
var fname = $('#fname');
var lname = $('#lname');
var fullname = $('#fullname');
self.updateFirstName = function(firstName) {
var _lname = lname.val() || (fullname.val() || '').trim().split(' ').pop();
fullname.val(firstName + ' ' + _lname);
UpdateImage();
};
self.updateLastName = function(lastName) {
var _fname = fname.val() || (fullname.val() || '').trim().split(' ').shift();
fullname.val(_fname + ' ' + lastName);
UpdateImage();
};
self.updateFullName = function(fullName) {
var _fullname = (fullName || '').trim().split(' ');
fname.val((_fullname[0] || ''));
lname.val((_fullname[1] || ''));
};
self.onFieldChange = function(e) {
switch(this.id) {
case 'fname':
self.updateFirstName(this.value);
break;
case 'lname':
self.updateLastName(this.value);
break;
case 'fullname':
self.updateFullName(this.value);
break;
}
};
function UpdateImage(){
$('#picturefile').val(jQuery('#fullname').val() + ".jpg");
}
fname.add(lname).add(fullname).change(self.onFieldChange);
form.submit(function(e) {
e.preventDefault();
return false;
});
}
</script>
我有一个包含 4 个文本字段的表单。 JS 确保有效填写名字、姓氏和全名……但我希望字段图片文件包含全名值,扩展名为 .jpg。允许我在需要时手动更改图片文件字段。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="form">
<label for="fname">First Name</label>
<input type="text" id="fname" />
<hr>
<label for="lname">Last Name</label>
<input type="text" id="lname" />
<hr>
<label for="fullname">Full Name</label>
<input type="text" id="fullname" />
<label for="picturefile">picture file</label>
<input type="text" id="picturefile" />
</form>
javascript代码
jQuery(document).ready(UserInfoCtrl);
function UserInfoCtrl($)
{
var self = this;
var form = $('#form');
var fname = $('#fname');
var lname = $('#lname');
var fullname = $('#fullname');
self.updateFirstName = function(firstName) {
var _lname = lname.val() || (fullname.val() || '').trim().split(' ').pop();
fullname.val(firstName + ' ' + _lname);
};
self.updateLastName = function(lastName) {
var _fname = fname.val() || (fullname.val() || '').trim().split(' ').shift();
fullname.val(_fname + ' ' + lastName);
};
self.updateFullName = function(fullName) {
var _fullname = (fullName || '').trim().split(' ');
fname.val((_fullname[0] || ''));
lname.val((_fullname[1] || ''));
};
self.onFieldChange = function(e) {
switch(this.id) {
case 'fname':
self.updateFirstName(this.value);
break;
case 'lname':
self.updateLastName(this.value);
break;
case 'fullname':
self.updateFullName(this.value);
break;
}
};
fname.add(lname).add(fullname).change(self.onFieldChange);
form.submit(function(e) {
e.preventDefault();
return false;
});
}
我认为你需要做类似的事情
<script>
jQuery(document).ready(UserInfoCtrl);
function UserInfoCtrl($)
{
var self = this;
var form = $('#form');
var fname = $('#fname');
var lname = $('#lname');
var fullname = $('#fullname');
self.updateFirstName = function(firstName) {
var _lname = lname.val() || (fullname.val() || '').trim().split(' ').pop();
fullname.val(firstName + ' ' + _lname);
UpdateImage();
};
self.updateLastName = function(lastName) {
var _fname = fname.val() || (fullname.val() || '').trim().split(' ').shift();
fullname.val(_fname + ' ' + lastName);
UpdateImage();
};
self.updateFullName = function(fullName) {
var _fullname = (fullName || '').trim().split(' ');
fname.val((_fullname[0] || ''));
lname.val((_fullname[1] || ''));
};
self.onFieldChange = function(e) {
switch(this.id) {
case 'fname':
self.updateFirstName(this.value);
break;
case 'lname':
self.updateLastName(this.value);
break;
case 'fullname':
self.updateFullName(this.value);
break;
}
};
function UpdateImage(){
$('#picturefile').val(jQuery('#fullname').val() + ".jpg");
}
fname.add(lname).add(fullname).change(self.onFieldChange);
form.submit(function(e) {
e.preventDefault();
return false;
});
}
</script>