这是一个令人困惑的问题。我需要用不同的<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();"
添加到新按钮。由于onclick更改,简单的.attr
或.prop
函数是不够的。它必须克隆onclick属性。谁能帮我?感谢。
这里的jsFiddle不保留onclick属性,但执行其他所有操作:http://jsfiddle.net/rAMcw/
答案 0 :(得分:2)
你可以这样做(我用一个简单的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);
答案 1 :(得分:0)
只需在输入后立即创建一个新按钮,将输入设置为display: none;
(或jQuery('#input').hide()
)并按下按钮触发输入的onclick(jQuery('#button').click(function(){ jQuery('#input').trigger('click'); });
答案 2 :(得分:0)
克隆怎么样?
var x = $('input').clone(true);
x.attr('type','button').addClass('previous_page_img graybutton mediumbutton').val('Previous Page');
$('input').replaceWith(x);
更新了 jsFiddle
答案 3 :(得分:0)
将现有的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";