从输入id jQuery获取密钥

时间:2015-08-11 16:13:09

标签: php jquery

我有几个输入的列表

<input type="hidden" id="elevens_id_ea" value="<?php echo $_GET['elev_id']; ?>" />
<input type="hidden" id="arskursen_ea" value="<?php echo $arskursen; ?>" />

<?php
if ($extraanpassning_hamta['atgard'] == true){ 
    ?>
    <input name="extraanpassning" id="knapp[<?php echo $amnets_id['amne_id']; ?>]" type="button" class="btn-u rounded btn-u-red btn-sm" value="Ja">
    <?php } else { ?>
    <input name="extraanpassning" id="knapp[<?php echo $amnets_id['amne_id']; ?>]" type="button" class="btn-u rounded btn-u-green btn-sm" value="Nej">
<?php } ?>

主要问题是如何抓住&#34;两个最新输入中的值:

id="knapp[<?php echo $amnets_id['amne_id']; ?>]"

如果knapp[4] - &gt;我怎么得到4?

上面的代码是按钮的一部分,当用户按下它时不改变值(不刷新页面)。

JS

<script>
$(document).ready(function(){
$('input[type="button"]').click(function(){
    var extraanpassningVal = $(this).attr("value");
    var amne_id_ea = $(this).attr("id");
    var elevens_id_ea = $("#elevens_id_ea").val(); //värdet av elev_id   
    var arskursen_ea = $("#arskursen_ea").val(); //värdet av elev_id       
    $.ajax({
        type: "POST",
        url: "iup_extraanpassning_byta.php",
        data: {extraanpassningType: extraanpassningVal, amne_id_ea: amne_id_ea, elevens_id_ea: elevens_id_ea, arskursen_ea: arskursen_ea},
        success:  function() {
        location.reload();
     }

  })
});
});
</script>

修改

主要问题是如何从像knapp [4]这样的id的输入中获取密钥。

如何在knapp []中获取密钥?

更新(感谢用户:SpYk3HH

<script>
$(document).ready(function(){
$('input[type="button"]').click(function(){
    var key = this.id.replace(/knapp|\[|\]/g, ''),  //  <---They key
        extraanpassningVal = $(this).attr("value"),
        amne_id_ea = $(this).attr("id"),
        elevens_id_ea = $("#elevens_id_ea").val(),
        arskursen_ea = $("#arskursen_ea").val();
    if (this.ajax) this.ajax.abort(); //  helps prevent multiple ajaxing (multiclicking)
    this.ajax = $.ajax({
            type: "POST",
            url: "iup_extraanpassning_byta.php",
            data: {extraanpassningType: extraanpassningVal, amne_id_ea: amne_id_ea, elevens_id_ea: elevens_id_ea, arskursen_ea: arskursen_ea},
            success:  function() {
            location.reload();
            }
        })
})
});
</script>

2 个答案:

答案 0 :(得分:1)

我想我明白了吗?在JS中调用按钮时你想要密钥吗?就像说key = this.id.replace(/knapp|\[|\]/g, '')

一样
  

更新,我在

之前没有看到括号
$('input[type="button"]').click(function(){
    var key = this.id.replace(/knapp|\[|\]/g, ''),  //  <---They key
        extraanpassningVal = $(this).attr("value"),
        amne_id_ea = $(this).attr("id"),
        elevens_id_ea = $("#elevens_id_ea").val(),
        arskursen_ea = $("#arskursen_ea").val();
    if (this.ajx) this.ajx.abort(); //  helps prevent multiple ajaxing (multiclicking)
    this.ajx = $.ajax({/*   options */});
})

这有帮助吗?

仅供参考,$(this).attr("id")this.id是相同的事情

&#13;
&#13;
$('[name=test]').each(function(i) { $('#bob').text(this.id.replace(/knapp|\[|\]/g, '')) })
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id="knapp4" name="test" value='my id is "knapp[4]"' />
<hr />
key: <span id="bob"></span>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

试试这个。

var amne_id_ea = "knapp[4]",
    value = amne_id_ea.substring(amne_id_ea.lastIndexOf("[")+1,amne_id_ea.lastIndexOf("]"));
alert(value);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

希望你期待这一点。