在jquery中获取附近的输入值

时间:2015-07-31 10:25:31

标签: jquery html dom

我希望在点击按钮时获得隐藏价值。它给了我未定义。任何帮助都会被欣赏。添加 js小提琴来回答将更有帮助使用我的码。

html代码

                          
<form method="POST" action="#">
    <input type="hidden" name="carid" class="carid" value="10">
    <input type="button" name="transfer" id="transfer" class="btn btn-default" onclick="transfercars()" style="margin-top:22px;" value="transfer">
    </form>

在jquery我有

function transfercars() {
    var carid = $(this).parent().find("input[type='hidden']").val();
    console.log(carid);
    var carid = $(this).prev('.carid').val();
    console.log(carid);
}

3 个答案:

答案 0 :(得分:2)

你可以这样做。

<form method="POST" action="#">
    <input type="hidden" name="carid" class="carid" value="10">
    <input type="button" name="transfer" id="transfer" class="btn btn-default" style="margin-top:22px;" value="transfer">
</form>

$("#transfer").on("click", function () {
    var carid = $(this).parent().find("input[type='hidden']").val();
    console.log(carid);
    var carid = $(this).prev('.carid').val();
    console.log(carid);
});

答案 1 :(得分:0)

当您在''.join( 3. )使用this时,this会引用window

你想要这样的东西:

(function(){
    document.getElementById("transfer").onclick = function() {
        var val = this.previousElementSibling.value;
        console.log(val);
    }
})();

JSFiddle

可以在JavaScript中轻松完成,不需要jQuery:)

对于多种表单,您可以执行此操作。

(function(){
    var el = document.getElementsByClassName('btn-default');
    for (var i=0;i<el.length; i++) {
        el[i].onclick = function() {
            var val = this.previousElementSibling.value;
            console.log(val);
        }
    }
})();

您需要将id=更改为class=,或者只为所有input type='button'创建一个新课程。

JSFiddle

答案 2 :(得分:0)

你可以为此命名。而不是onclick属性,我会绑定一个函数。

HTML:

<form method="POST" action="#">
    <input type="hidden" name="carid" class="carid" value="10">
    <input type="button" name="transfer" id="transfer" class="btn btn-default" style="margin-top:22px;" value="transfer">
</form>

jQuery的:

$('[name="transfer"]').on('click', function() {
    var carid = $('name=["carid"]').val();
    console.log( carid ); 
});