2013-07-04 3 views
0

У меня есть текстовое поле html с фоновым изображением, как показано ниже на странице asp.net mvc. теперь я хочу написать событие click для этого заднего изображения.Как скопировать событие click для изображения внутри текстового поля html

 <input type="text" id="txtProjectCode" readonly="readonly" style="background-image:url('/Content/Images/remove.png'); 
background-repeat:no-repeat; 
background-position:right; 
" /> 

Как я могу написать обработчик события click для фонового изображения текстового поля html в javascript? если нет в javascript любой работы вокруг, чтобы сделать это?

+0

Я не думаю, что это возможно –

+0

можно, использовать отображение для этого с наложением. Я попытаюсь закодировать его и объяснить, если это сработает. – CME64

+0

Вы хотите отслеживать щелчок на входе, но не _inside_ текстовый блок? – mishik

ответ

1

Wrap входного элемента в DIV, и создать элемент изображения, набор CSS position: relative; на родительском DIV и установите position: absolute; на изображении, и указав top/left свойства изображения, вы можете поместить изображение наложения вход. Если вы хотите наложить входной фон, вы можете сделать прозрачное изображение наложения и назначить событие клика на прозрачном изображении, и оно должно работать. Что-то вроде:

<div style="position: relative;"> 

<input type="text" id="txtProjectCode" readonly="readonly" style="background-image:url('/Content/Images/remove.png'); background-repeat:no-repeat; background-position:right; " /> 
<img src="img.png" style="position: absolute; right: 0;" /> 

</div> 
+0

это именно то, что я имел в виду :) +1 – CME64

+0

thanx для помощи мне в работе – subash

0

вот как реализовать накладку с ЯШ: jsfiddle

CSS:

#overlay{ 
    position: absolute; 
    background-color: rgb(255,0,0); 
    opacity:0.2; 
    z-index:5; 
} 
#field{ 
    /*background-image:url('');*/ 
} 

HTML:

<input id="field" type="text" /> 
<div id="overlay"></div> 

ЯШ:

console.log(parseInt($('#field').css('border-width'))); 
var border = parseInt($('#field').css('border')); 
$('#overlay').css({'width':($('#field').width()+2*border)+'px','height':($('#field').height()+3*border)+'px','left':($('#field').offset().left)+'px','top':($('#field').offset().top)+'px'}); 

$('#overlay').click(function(){ 
    console.log('clicked'); 
    $('#field').focus(); 
}).mousedown(function(){ 
    $('#field').mousedown(); 
}).mouseup(function(){ 
    $('#field').mouseup(); 
}); 

, если вы хотите, чтобы добавить выделенный текст => добавить $('#field').select(); внутри триггера MouseDown или MouseUp

Смежные вопросы