С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 05/09/10 в 17:14 |
В общем есть поле:
Код: |
<input name="fullimage" type="text" size="50" value="">
|
допустим в него вставлена ссылку на картинку типа:
http://mydomain.com/image.jpg
еще есть второе поле:
Код: |
<input name="thumbinail-120x90" type="text" size="50" value="">
|
и ссылка:
Код: |
<a href="#">120x90</a>
|
Т.е. Получается, что форма примерно такая (только ссылка на картинку может быть разной):
Код: |
<input name="fullimage" type="text" size="50" value="http://mydomain.com/image.jpg"><br>
<a href="#">120x90</a><br>
<input name="thumbinail-120x90" type="text" size="50" value="">
|
Нужно, чтобы при нажатии на ссылку
Код: | <a href="#">120x90</a> |
данные из поля fullimage копировались, а расширение ".jpg" заменялось на "-120x90.jpg"
и потом конечный результат вставлялся в поле thumbinail-120x90, т.е. получается туда должна вставиться ссылка типа:
http://mydomain.com/image-120x90.jpg
Помогите реализовать, всем рейт!
|
|
|
|
С нами с 25.08.08
Сообщения: 18748
Рейтинг: 1251
|
Добавлено: 05/09/10 в 18:10 |
чета типа того
<input id="fullimage" name="fullimage" type="text" size="50" value="http://mydomain.com/image.jpg"><br>
<a href="#" onclick="document.getElementById('thumbinail-120x90').value = document.getElementById
('fullimage').value.replace('.jpg', '-120x90.jpg');">120x90</a><br>
<input id="thumbinail-120x90" name="thumbinail-120x90" type="text" size="50" value="">
З. Ы.
в replace правильнее было бы regexp использовать.
|
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 05/09/10 в 18:22 |
Спасибо, то что надо, оценил
|
|
|
|
С нами с 31.05.10
Сообщения: 1991
Рейтинг: 487
|
Добавлено: 05/09/10 в 18:33 |
а я бы делал на jQ чтобы лишний код не воротить и на кроссбраузерность не попасть
Код: [развернуть] |
<html>
<head>
<script type="text/javascript" src="./jquery-1.4.2.min.js"></script>
</head>
<script type="text/javascript">
$(document).ready(function() {
$(".resizer").click(function () {
$('#thumbinail').val($('#fullimage').val().replace('.jpg', '-'+$(this).attr('id')+'.jpg'));
});
});
</script>
<body>
<input id="fullimage" name="fullimage" type="text" size="50" value="http://mydomain.com/image.jpg"><br>
<a class="resizer" id="120x90" href="#">120x90</a><br>
<a class="resizer" id="240x18" href="#">240x180</a><br>
<a class="resizer" id="360x270" href="#">360x270</a><br>
<input id="thumbinail" name="thumbinail" type="text" size="50" value="">
</body>
</html>
|
|
|
|
|
С нами с 01.03.07
Сообщения: 304
Рейтинг: 223
|
Добавлено: 05/09/10 в 18:43 |
Код: [развернуть] | <html>
<head>
<script>
function onClickLink( element )
{
children = element.innerText;
fullimage=document.getElementById('fullimage').value;
pattern = /http\:\/\/(.+)\.(\w+)\/(\w+)\.jpg/i ;
match1 = fullimage.match(pattern);
if( match1[3] != undefined )
{
document.getElementById('thumb').name = 'thumbinail-'+fullimage;
document.getElementById('fullimage').value='';
document.getElementById('fullimage').value = 'http://'+match1[1]+'.'+match1[2]+'/'+match1[3]+'-'+children+'.jpg'
}
}
</script>
</head>
<body>
<form>
<input name="fullimage" type="text" id="fullimage" size="50" value="http://mydomain.com/image.jpg"><br>
<a href="#" onclick="onClickLink( this );">120x90</a><br>
<input name="thumbinail-120x9" id="thumb" type="text" size="50" value="">
</form>
</body>
</html> |
на голом JS если делать
|
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 06/09/10 в 12:01 |
Спасибо, оценил всех +5!
есть еще вопрос...
К примеру вот форма:
Код: |
Количество товаров:
<input type="text" id="product" name="product" />
Цена:
<input type="text" id="price" name="price" />
Цена за установку:
<input type="text" id="priceperadding" name="priceperadding" />
Итого:
<input type="text" id="pricetotal" name="pricetotal" />
|
нужно чтобы в поле "итого" (pricetotal) автоматически расчитывалось значение (в смысле я вбываю цифры, и ничего нажимать не надо все само расчитывается) по следующей формуле:
((product * price) / 100) + priceperadding
Последний раз редактировалось: log (06/09/10 в 12:42), всего редактировалось 1 раз
|
|
|
|
С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970
|
Добавлено: 06/09/10 в 12:23 |
Рискну предположить, что формула неправильная:
Код: | ((product * price) / 100) + priceperadding |
- должно быть так.
Тогда код:
Код: [развернуть] | <script type="text/javascript">
<!--
function pricetot()
{
pricetotal.value = parseFloat((product.value * price.value) / 100) + parseFloat(priceperadding.value);
return true;
}
//-->
</script>
Количество товаров:
<input type="text" id="product" name="product" onkeyup="pricetot()" />
Цена:
<input type="text" id="price" name="price" onkeyup="pricetot()" />
Цена за установку:
<input type="text" id="priceperadding" name="priceperadding" onkeyup="pricetot()" />
Итого:
<input type="text" id="pricetotal" name="pricetotal" /> |
|
|
|
|
С нами с 31.05.10
Сообщения: 1991
Рейтинг: 487
|
Добавлено: 06/09/10 в 12:28 |
тоже за то что формула кривая ) но у меня такой вариант
Код: [развернуть] |
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<script type="text/javascript">
$(document).ready(function() {
$(".calculated").change(function () {
var priceperadding = Number($('#priceperadding').val())
var product = Number($('#product').val())
var price = Number($('#price').val())
var pricetotal = (price*product)+priceperadding
$('#pricetotal').val(pricetotal);
});
});
</script>
<body>
Количество товаров:
<input type="text" class="calculated" id="product" name="product" /> <br>
Цена:
<input type="text" class="calculated" id="price" name="price" /> <br>
Цена за установку:
<input type="text" class="calculated" id="priceperadding" name="priceperadding" /> <br>
Итого:
<input type="text" id="pricetotal" name="pricetotal" />
</body>
</html>
|
|
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 06/09/10 в 12:49 |
Спасибо, оценил +5, формула действительно была кривая (подправил ее).
Все отлично работает, только еще вопрос, а как округлить значение до целых?
т.е. чтобы было, например, не 539.7 а 540
и по коду у gimcnuk хотелось бы чтобы в случае если не все значения заполнены выводилось "0", а не "NaN"
у LeadFarmer работает так как надо, только смущает использование Код: | <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> |
|
|
|
|
С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970
|
Добавлено: 06/09/10 в 12:56 |
Код: [развернуть] |
<script type="text/javascript">
<!--
function pricetot()
{
var promejnost = parseFloat((product.value * price.value) / 100) + parseFloat(priceperadding.value);
pricetotal.value = isNaN(promejnost)==true?0:parseInt(promejnost);
return true;
}
//-->
</script>
|
|
|
|
|
С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970
|
Добавлено: 06/09/10 в 12:59 |
Jquery залей себе, много места не займёт.
Production (24KB, Minified and Gzipped)
Development (155KB, Uncompressed Code)
Хотя, на мой взгляд, для таких задач - это перебор. Гвозди микроскопом.
|
|
|
|
С нами с 15.12.06
Сообщения: 673
Рейтинг: 686
|
Добавлено: 06/09/10 в 13:09 |
Спс. еще +10!
Цитата: | Jquery залей себе, много места не займёт. |
не люблю лишние файлы тыкать, а так реализовано отлично.
Всем еще раз спасибо!
|
|
|
|
С нами с 31.05.10
Сообщения: 1991
Рейтинг: 487
|
Добавлено: 06/09/10 в 13:42 |
gimcnuk писал: | Хотя, на мой взгляд, для таких задач - это перебор. Гвозди микроскопом. |
тут не соглашусь чем больше использую jq и другие fw тем меньше тянет лезть в голый js и прописывать всякие onmouseover, onmouseout-ы и проч.
|
|
|
|