Разделите и измените элемент с помощью jQuery - PullRequest
0 голосов
/ 04 февраля 2012

Вот запутанный вопрос. Мне нужно заменить <input> другим <input>, но мне нужно сохранить атрибут onclick. Вот пример:

<input type="image" class="previous_page_img graybutton mediumbutton" src="btn_prevpage.png" onclick="Add_Search_Param('page', 1); Refine();" alt="">

Поскольку я не могу изменить тип <input> на кнопку, я хочу заменить его на кнопку, однако мне нужно сохранить атрибут "onclick". Итак, во-первых, мне нужно разбить элемент. Замените его кнопкой и добавьте исходный атрибут onclick к новой кнопке.

Итак, в конце я бы добавил onclick="Add_Search_Param('page', 1); Refine();" к новой кнопке. Поскольку онклик меняется, простой функции .attr или .prop будет недостаточно. Он должен клонировать атрибут onclick. Может кто-нибудь мне помочь? Спасибо.

Вот jsFiddle, который не сохраняет атрибут onclick, но делает все остальное: http://jsfiddle.net/rAMcw/

Ответы [ 4 ]

2 голосов
/ 04 февраля 2012

Вы могли бы сделать (я использовал простую функцию javascript для проверки)

<input type="image" class="previous_page_img graybutton mediumbutton" src="btn_prevpage.png" onclick="Add_Search_Param('page', 1); Refine();" alt="">

var onclick = $('.mediumbutton').attr('onclick');

var but =  $('<input/>', { type: "button", value: "pressme", onclick: onclick});

$('.mediumbutton').replaceWith(but);

скрипка здесь http://jsfiddle.net/KjBm3/

0 голосов
/ 04 февраля 2012

Что плохого в том, чтобы превратить существующий элемент input в кнопку?

$("input.previous_page_img").prop("type", "button").val("Previous Page");

jQuery 1.4.2: (установить свойство в простом старом JavaScript);

$("input.previous_page_img").val("Previous Page")[0].type = "button";

Демо

0 голосов
/ 04 февраля 2012

Как насчет клонирования?

var x = $('input').clone(true);
x.attr('type','button').addClass('previous_page_img graybutton mediumbutton').val('Previous Page');
$('input').replaceWith(x);

Обновлено jsFiddle

0 голосов
/ 04 февраля 2012

Просто создайте новую кнопку сразу после входа, установите для входа значение display: none; (или jQuery('#input').hide()) и нажмите кнопку, чтобы вызвать щелчок входа (jQuery('#button').click(function(){ jQuery('#input').trigger('click'); });

).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...