Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.08.2012, 16:49
Новичок на форуме
Отправить личное сообщение для olberd Посмотреть профиль Найти все сообщения от olberd
 
Регистрация: 14.08.2012
Сообщений: 9

Как написать onclick для всех кнопок в таблице кол-во которых меняется
Таблица
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
<table width="444" border="1"><tr>
  
    <td width="214" rowspan="2">&nbsp;
    <div id="ctl00_MainContent_Info_ctl00_upd_small">  16500  </div>
    </td>
    <td width="214">&nbsp;
    <input name="ctl00$MainContent$Info$ctl00$Purchase1$txtPurchasePrice" type="text" maxlength="30" id="ctl00_MainContent_Info_ctl00_Purchase1_txtPurchasePrice" style="width:180px;text-align: center">
    </td>
  </tr>
  <tr>
    <td>&nbsp;
    <input type="submit" name="ctl00$MainContent$Info$ctl00$Purchase1$btnMakePurchase" value="Купить" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MainContent$Info$ctl00$MakePurchase1$btnMakePurchase&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_MainContent_Info_ctl00_MakePurchase1_btnMakePurchase" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_MainContent_Info_ctl00_MakePurchase1_btnMakePurchase')" style="width:180px;">
    
    </td>
  </tr>
  
  <tr>
    <td width="214" rowspan="2">&nbsp;
    <div id="ctl00_MainContent_Info_ctl01_upd_small"> 10000 </div>
    </td>
    <td width="214">&nbsp;
    <input name="ctl00$MainContent$Info$ctl01$MakePurchase1$txtPurchasePrice" type="text" maxlength="30" id="ctl00_MainContent_Info_ctl01_MakePurchase1_txtPurchasePrice" style="width:180px;text-align: center">
    </td>
  </tr>
  <tr>
    <td>&nbsp;
    <input type="submit" name="ctl00$MainContent$Info$ctl01$MakePurchase1$btnMakePurchase" value="Купить" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MainContent$Info$ctl01$MakePurchase1$btnMakePurchase&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="ctl00_MainContent_Info_ctl01_MakePurchase1_btnMakePurchase" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'ctl00_MainContent_Info_ctl01_MakePurchase1_btnMakePurchase')" style="width:180px;">
    </td>
  </tr>
</table>

<script type="text/javascript">
document.getElementById('ctl00_MainContent_Info_ctl00_MakePurchase1_btnMakePurchase').onclick = function()
    { 	var price1 = document.getElementById('ctl00_MainContent_Info_ctl00_upd_small');
       	var price2 = document.getElementById('ctl00_MainContent_Info_ctl00_Purchase1_txtPurchasePrice');
    	price2.value = price1.innerText; 
    }
</script>

</body>
</html>


Как сделать чтобы при нажатии на любую кнопку бралось значение из ряда слева которое находится в той же строке, что и кнопка.
ID элементов генерируются на чужой странице и кол-во строк с кнопками может меняться.

Вот мой скрипт, но он работает только на кнопке которую явно указываешь

<script type="text/javascript">
document.getElementById('ctl00_MainContent_Info_ctl00_MakePurchase1_btnMakePurchase').onclick = function()
    { 	var price1 = document.getElementById('ctl00_MainContent_Info_ctl00_upd_small');
       	var price2 = document.getElementById('ctl00_MainContent_Info_ctl00_Purchase1_txtPurchasePrice');
    	price2.value = price1.innerText; 
    }
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2012, 17:20
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Никогда не используйте только innerText, это не стандартный метод - 1раз, не работает в ff - два.

document.onclick = function(e){
  e = e? e.target : event.srcElement;
  if(e && e.id && e.tagName === 'INPUT' && e.type === 'text' && /_[^_]+_txtPurchasePrice/.test(e.id) ){
    e.value = document.getElementById(e.id.replace(/_[^_]+_txtPurchasePrice/,'_upd_small')).innerHTML;
  }
}
__________________
29375, 35

Последний раз редактировалось Aetae, 15.08.2012 в 17:28.
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2012, 18:42
Новичок на форуме
Отправить личное сообщение для olberd Посмотреть профиль Найти все сообщения от olberd
 
Регистрация: 14.08.2012
Сообщений: 9

Спасибо!!! А как сделать чтоб так работало при нажатии на кнопки btnMakePurchase, а то теперь мышью никак не выделить поле txtPurchasePrice
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2012, 19:06
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

document.onmousedown = function(e){
  e = e? e.target : event.srcElement;
  if(e && e.id && e.tagName === 'INPUT' && e.type === 'submit' && /_[^_]+_btnMakePurchase/.test(e.id) ){
	(
		document.getElementById(e.id.replace(/_([^_]+)_btnMakePurchase/,'_$1_txtPurchasePrice')) ||
		document.getElementById(e.id.replace(/_Make([^_]+)_btnMakePurchase/,'_$1_txtPurchasePrice'))	
	).value = document.getElementById(e.id.replace(/_[^_]+_btnMakePurchase/,'_upd_small')).innerHTML
  }
}
__________________
29375, 35
Ответить с цитированием
  #5 (permalink)  
Старый 15.08.2012, 20:09
Новичок на форуме
Отправить личное сообщение для olberd Посмотреть профиль Найти все сообщения от olberd
 
Регистрация: 14.08.2012
Сообщений: 9

Огромное спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 15.08.2012, 21:14
Новичок на форуме
Отправить личное сообщение для olberd Посмотреть профиль Найти все сообщения от olberd
 
Регистрация: 14.08.2012
Сообщений: 9

Дико извиняюсь, а если в таблице еще одна колонка, отсюда уже данные по строкам уже не вытянуть? Это шаг на сколько уменьшать цену и он может меняться
<td style="font-size: 80%; white-space: nowrap; text-align: center">
				 300,00000</td>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как сделать ссылки из файла CSS корректными для всех директрорий сайта? GrEb (X)HTML/CSS 7 28.01.2020 12:56
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как написать цыкл each serhanters jQuery 7 24.04.2011 11:16
Как в общем меню для всех страниц поменять класс определенного пункта в зависимости о phenom Элементы интерфейса 2 08.04.2011 11:09
Как присвоить текст строке состояния для всех браузеров? Tend Общие вопросы Javascript 4 14.05.2009 16:38