检测文本框的更改值,并在jquery中重新绑定dropdownlist值

检测文本框的更改值,并在jquery中重新绑定dropdownlist值,jquery,Jquery,我有一个来自弹出值的文本框。文本框的此值还将在主页中重新绑定my dropdownlist的选定值 @Html.TextBox("test", "", new { @style = "width:500px", @class = "sa-required" }) 我必须这样做 $('#test').bind('input', function () { alert('Content has been changed'); $("#mydropdownlis

我有一个来自弹出值的文本框。文本框的此值还将在主页中重新绑定my dropdownlist的选定值

  @Html.TextBox("test", "", new { @style = "width:500px", @class = "sa-required" })
我必须这样做

 $('#test').bind('input', function () {
        alert('Content has been changed');
        $("#mydropdownlist").val(data);
 });
$('#test').keyup(function () {
        if ($('#test').val() != content) {
            content = $('#test').val();
            alert('Content has been changed');
            $("#mydropdownlist").val(data);
}});
 $('#test').live('change', function () {
        alert('test');
        $("#mydropdownlist").val(data);
 });
$('#test').change(function () { $("#mydropdownlist").val(data); });
像这样

 $('#test').bind('input', function () {
        alert('Content has been changed');
        $("#mydropdownlist").val(data);
 });
$('#test').keyup(function () {
        if ($('#test').val() != content) {
            content = $('#test').val();
            alert('Content has been changed');
            $("#mydropdownlist").val(data);
}});
 $('#test').live('change', function () {
        alert('test');
        $("#mydropdownlist").val(data);
 });
$('#test').change(function () { $("#mydropdownlist").val(data); });
像这样

 $('#test').bind('input', function () {
        alert('Content has been changed');
        $("#mydropdownlist").val(data);
 });
$('#test').keyup(function () {
        if ($('#test').val() != content) {
            content = $('#test').val();
            alert('Content has been changed');
            $("#mydropdownlist").val(data);
}});
 $('#test').live('change', function () {
        alert('test');
        $("#mydropdownlist").val(data);
 });
$('#test').change(function () { $("#mydropdownlist").val(data); });
像这样

 $('#test').bind('input', function () {
        alert('Content has been changed');
        $("#mydropdownlist").val(data);
 });
$('#test').keyup(function () {
        if ($('#test').val() != content) {
            content = $('#test').val();
            alert('Content has been changed');
            $("#mydropdownlist").val(data);
}});
 $('#test').live('change', function () {
        alert('test');
        $("#mydropdownlist").val(data);
 });
$('#test').change(function () { $("#mydropdownlist").val(data); });
问题是,当内容更改时(我从弹出窗口中获得),我的文本框没有启动,但是如果我从文本框本身更改,它会工作,dropdownlist会更改

有没有建议jquery检测textbox值的变化不是基于用户从textbox本身的输入,而是基于我从弹出窗口中获得的值


谢谢。

您似乎需要触发更改事件。如果您这样做:

$('#test').live('change', function () {
    alert('test');
    $("#mydropdownlist").val(data);
});
因为您正在
#mydropdownlist
中设置一个新值。您需要这样做,下一步就是更改值:

$('#mydropdownlist').trigger('change');
简历:

$('#test').live('change', function () {
    alert('test');
    $("#mydropdownlist").val(data);
    $('#mydropdownlist').trigger('change');
});
警告一个版本,不能使用
.live()

试试
.on()
。绑定()
可以吗


链接截图

我很难理解你的问题。您使用的jQuery版本是什么?你能显示你正在谈论的弹出窗口吗?我正在使用jquery 1.8.21。。哦,这是一个很长的代码。我的问题不是来自弹出窗口本身。它工作得很好。问题是,当我得到这个值并将其发送到主页中的textbox时,我也想在主页中重新绑定dropdownlist,但它不起作用。我必须对文本框本身进行按键/更改,然后dropdownlist正在运行Hi Marcos。。我添加了$('mydropdownlist')。触发器('change');但它仍然没有开火。。我仍然需要从文本框本身进行更改,以更改dropdownlist。我的意思是,如果文本框的内容被更新/更改(从弹出窗口的值),那么dropdownlist将根据文本框刷新所选的值,而不是从文本框本身手动更改。因此,您需要在输入(
#test
我相信)中触发更改事件,而不是在下拉列表中<代码>$('#test')。触发器('change')