javascript - 如何在 jquery 文本框的更改事件中将下拉列表选定项的值替换为某个值?

标签 javascript jquery

我有一个下拉列表和一个文本框。我正在尝试通过更改文本框中的文本将下拉列表中的选定值替换为某个值。

这是我的代码:

<select class="form-control Series-1 valid" name="CRMFields" id="CRMFields">
    <option>None</option>
    <optgroup label="Lead Information"></optgroup>
    <option value="First Name^Lead ID^">Lead ID</option>
    <option value="First Name^First Name^" selected="">First Name</option>
    <option value="First Name^Last Name^">Last Name</option>
</select>
<input class="defaultValue" data-target-class="Series-1" id="DefaultValue" name="DefaultValue" type="text" value="">

JQuery:

<script type="text/javascript">
    $(document).ready(function () {
        $(".defaultValue").change(function () {
            var thisval = $(this).val();
            var targetclass = $(this).attr("data-target-class");
            var CRMFiledValue = $("." + targetclass).val();
            var arr = CRMFiledValue.split('^');
            var left = arr[0];
            var middle = arr[1];
            var last = thisval;
            var replaceText = left + "^" + middle + "^" + last;
            alert(replaceText);
            alert($("." + targetclass).prop("value", replaceText));
            alert($("." + targetclass).val());               
        });
    });
</script>

但是上面的代码在警告框上显示 [object Object] 和 null 而不是连接值。

我想在文本框的更改事件中将选定的值项替换为某个值。

JSFiddle

在此先感谢您的帮助。

最佳答案

部分问题在于,每当有人更改输入框的值时,您都会更改每个选项的值。

所以我将 + option:selected 添加到 var CRMFiledValue 的选择器中。我假设这就是您想要的,因为您可能不希望每个字段都具有 FirstName^FirstName^thisval 作为它的值。下面的代码已经根据您的 HTML/其他 javascript 的设置方式进行了测试和工作

    $(document).ready(function () {
        $(".defaultValue").change(function () {
            var thisval = $(this).val();
            var targetclass = $(this).attr("data-target-class");
        
            var CRMFiledValue = $("." + targetclass + ' option:selected').val();
            var arr = CRMFiledValue.split('^');
            var left = arr[0];
            var middle = arr[1];
            var last = thisval;
            var replaceText = left + "^" + middle + "^" + last;        
        
            $("." + targetclass + ' option:selected').prop("value", replaceText);
        });
    });

关于javascript - 如何在 jquery 文本框的更改事件中将下拉列表选定项的值替换为某个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29325287/

相关文章:

javascript - OrientDB函数: unable to save document

javascript - 是否可以为 HTML 幻灯片创建 JavaScript 后退按钮?

javascript - 不同ID的链接设置值的onclick

javascript - 计算网站中点击次数最多的视频

javascript - JS/jQuery 延迟循环以获得期望的结果(延迟()不工作)

jquery - 在服务器端 ASP.NET 上读取 FormData 对象

javascript - Ajax 变量重用构建

Javascript 练习对我来说看起来不错,但它不起作用

javascript - 用于尝试返回 json 数据的 ionic Angular 闭合

javascript - 如何根据用于确定要显示的按钮的值在单击之前不知道的条件动态显示按钮?