单击Div后将值放入Textbox

时间:2013-01-09 17:49:49

标签: javascript jquery asp.net html

我目前正在尝试为我的网页更换壁纸。

当我点击CSS菜单中各自的DIV选项时,我想将壁纸的URL放入文本框中。

这是我的JQuery

$("div.bg8").click( function() {
var BackgroundURL = 'Styles/hongkongskyline.jpg'; 
var TheTextBox = document.getElementById('<%=BackgroundsTxt.ClientID%>'); 
TheTextBox.value= BackgroundURL; 
alert('This has worked'); }); 

..和我的HTML ......

 <ul><li class="#cssmenu"><a>
  <div id="bg8" runat="server">
    <table style="height: 16px; width:33%;"> 
     <tr>
     <td>
     <img src='Styles/hongkongskyline.jpg' width="34px" height="32px" /></td>  <td>Hong Kong Skyline                                                                                       </td> 
     </tr> 
    </table>
   </div>
</a></li></ul>

不幸的是,当我点击DIV时似乎没有发生任何事情。

有人看到我不能解决的任何问题吗?

非常感谢。

2 个答案:

答案 0 :(得分:2)

这里有几个问题。

首先,你不是在你的jQuery中引用你的div的ID - 你指的是一个名为bg8的类。试试这个:

$("#bg8")...

接下来,你将一些本机dom的东西混合到你的jQuery中。而不是

document.getElementById('<%=BackgroundsTxt.ClientID%>'); 

$("#<%=BackgroundsTxt.ClientID%>");

并确保通过查看您网页的来源来解析ID。

最后,设置文本框的值:

theTextBox.val(BackgroundURL);

你的整个功能可能是

$("#bg8").click( function() {
    $("#<%=BackgroundsTxt.ClientID%>").val('Styles/hongkongskyline.jpg'); 
    alert('This has worked');
}); 

我的策略是在转向真实逻辑之前,使用简单的警报测试事件处理程序。

答案 1 :(得分:1)

你的jQuery声明$('div.bg8'),这需要一个带有类bg8的div,

你没有设置类,而是你的div的id为bg8

将此更改:$('div.bg8')改为$('#bg8')