PHP切换用户时同步更新电话号码的实现问题
问题解决:切换下拉框同步更新电话号码输入框
你的代码存在两个关键问题导致功能失效:
- 错误地从
<select>元素本身获取data-phone,但该属性实际绑定在每个<option>选项上,应该获取当前选中的option的对应值 - jQuery设置输入框内容的方法是
.val(),而非.value()(.value()是原生JS的属性,jQuery不支持)
修改后的脚本代码
function updatePhone() { // 获取选中的option元素的data-phone值 var phone = $('select[name="User"] option:selected').data('phone'); // 用jQuery的val()方法设置输入框值 $('#phone-input').val(phone); }
可选:原生JS实现(无需jQuery)
如果不想依赖jQuery,也可以用原生JS编写:
function updatePhone() { const selectEl = document.querySelector('select[name="User"]'); // 获取选中的option const selectedOption = selectEl.options[selectEl.selectedIndex]; // 获取data-phone值 const phone = selectedOption.dataset.phone; // 设置输入框值 document.getElementById('phone-input').value = phone || ''; }
额外优化建议
- 给默认的
<option>添加data-phone="",避免选中默认项时输入框显示undefined - 页面加载完成后主动调用一次
updatePhone(),可以实现默认选中用户时自动填充对应电话
内容的提问来源于stack exchange,提问作者Lê Trung Hiếu
相关产品推荐
相关产品推荐

