我正在尝试根据用户从下拉列表中选择值来更改文本输入的值。我已经使用以下工具了
<script type="text/javascript">
$(document).ready(function() {
$("#name").live("change", function() {
$("#firstname").val($(this).find("option:selected").attr("value"));
})
});
</script>
<select id="name" name="name">
<option value="">Please select...</option>
<option value="Elvis">Elvis</option>
<option value="Frank">Frank</option>
<option value="Jim">Jim</option>
</select>
<input type="text" id="firstname" name="firstname" value="" readonly="readonly">
这一切都很好。我现在想要实现的是,如果用户希望编辑他们的选择,则在用户重新访问表单时默认显示预选项目。目前,select只是默认为'Please Select ...'。无论如何,他们是否强制select在页面加载时显示文本输入的值?
由于
克里斯
答案 0 :(得分:10)
试试这个,
$(document).ready(function() {
$("#name option").filter(function() {
return $(this).val() == $("#firstname").val();
}).attr('selected', true);
$("#name").live("change", function() {
$("#firstname").val($(this).find("option:selected").attr("value"));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<select id="name" name="name">
<option value="">Please select...</option>
<option value="Elvis">Elvis</option>
<option value="Frank">Frank</option>
<option value="Jim">Jim</option>
</select>
<input type="text" id="firstname" name="firstname" value="Elvis" readonly="readonly">
答案 1 :(得分:2)
$(document).ready(function() {
$(document).on("change", "#name", function() {
$("#firstname").val( this.value ); // this.value is enough for you
}).val( $('#firstname').val() ).change(); // for pre-selection trigger
});
而不是.live()
使用.on()
与jQuery 1.7+,因为live()
已被弃用。
委托事件处理的.on()
语法为:
$(StaticParent).on( eventName, target, handlerFunction );
其中,StaticParent
表示要绑定事件的target
元素的非动态父容器。
因此,对于上述情况,最好使用#name
的任何静态父代替document
。
答案 2 :(得分:1)
$(document).ready(function() {
$("#name").live("change", function() {
$("#firstname").val($(this).val());
})
});
答案 3 :(得分:1)
试试这个:http://jsfiddle.net/ufomammut66/mw4dY/
基本上是onload我只是按值选择一个选项,将其设置为选中,然后调用change事件。您的更改活动会处理剩下的事情。
$(document).ready(function() {
$("#name").live("change", function() {
$("#firstname").val($(this).find("option:selected").attr("value"));
});
$('#name option[value=Frank]').attr('selected','selected').change();
});
答案 4 :(得分:0)
将此代码粘贴到$(document).ready
$("#name").val($("#firstname").val());
答案 5 :(得分:0)
$('#name').val($('#firstname').val());
答案 6 :(得分:0)
要记住表单值,您可以使用cookie functions:
$(document).ready(function() {
var value = readCookie('fname');
if (value) {
$("#firstname").val(value);
$('#name option[value="'+value+'"]').prop('selected', true);
}
$("#name").on("change", function() {
var value = $(this).find("option:selected").attr("value");
$("#firstname").val(value);
createCookie('fname',value,31);
});
});
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
jsfiddle - 如果您再次访问此页面,该名称将在页面休假时设置。