0

如果我的下拉列表选择了一个值,我想在我的文本框中显示选定的项目文本。如果没有,我想清空它。

<asp:DropDownList ID="ddl"  runat="server" AutoPostBack="true" onselectedindexchanged="ddlSelectedIndexChanged" Width="200px" onchange="ddlChange()">
</asp:DropDownList>
<asp:TextBox ID="hdntxtbxTaksit" runat="server" Visible="false"></asp:TextBox>

我怎样才能做到这一点?

4

4 回答 4

1

如果您想将下拉列表的选定值分配给文本框,您可以在没有和条件的更改事件中分配为change event means dropdown have been selected.

使用 javascript

改变

onchange="ddlChange()"

onchange="ddlChange(this)"

你的 javascrpt 方法是

function ddlChange(ddl)
{      
      document.getElementById('<%= hdntxtbxTaksit.ClientId %>').value = this.value;
}

使用 jQuery

删除 onchange="ddlChange()" 因为我们将绑定事件与 jquery。

$('<%= ddl.ClientId %>').change(function(){          
          $('<%= hdntxtbxTaksit.ClientId %>').val($(this).val());    
});
于 2012-11-19T10:08:44.140 回答
1

使用 jQuery;

$().ready(function(){           
  $('#<%=ddl.ClientID %>').change(function () {               
    $('#<%=hdntxtbxTaksit.ClientID %>').val($(this).val() == "0" ? "" : $(this).val());              
  });
});

编辑:使用上述方法,您不需要调用onchange下拉菜单的事件。所以你的标记可以是

<asp:DropDownList ID="ddl"  runat="server" AutoPostBack="true"
         onselectedindexchanged="ddlSelectedIndexChanged" Width="200px">
</asp:DropDownList>
<asp:TextBox ID="hdntxtbxTaksit" runat="server" Visible="false"></asp:TextBox>
于 2012-11-19T10:14:53.517 回答
0

你可以这样做

function ddlChange()
{
   if(document.getElementById('<%= ddl.ClientId %>').value=='0')
   {
      document.getElementById('<%= hdntxtbxTaksit.ClientId %>').value = "";
   }
   else
   {
      document.getElementById('<%= hdntxtbxTaksit.ClientId %>').value = document.getElementById('<%= ddl.ClientId %>').value;    
   }
}
于 2012-11-19T10:11:47.187 回答
0

尝试此代码并删除在您的 asp:dropdownlist 中添加的 onchange 事件

注意: AUTOPOSTBACK 属性总是会做一个页面提交,即使你在下拉的 onchange 方法中返回 false 也不会停止

        $(document).ready(function () {
            $('#<%=ddl.ClientID %>').change(function () {

                if ($(this).val() != "0") {
                    $('#<%= hdntxtbxTaksit.ClientID %>').val($(this).val());
                }
                else {
                    $('#<%= hdntxtbxTaksit.ClientID %>').val("");
                }
            });

        });
于 2012-11-19T10:13:16.300 回答