单击Javascript变量

时间:2014-06-19 09:53:13

标签: javascript jquery

我需要做以下事情:

  • 点击后我需要设置一个javascript变量

  • 然后我将同一页面上PREVIOUS点上的输入字段的值设置为我设置的此变量的值。

这是我的按钮代码。

<button onclick="close_modal()">close</button>
<script type="text/javascript" language="javascript">
    function close_modal() {
        var userID = <?php echo 1; ?>;
        $('#modal-findAsset').modal('hide');   
    }
</script>

我该怎么做?

3 个答案:

答案 0 :(得分:0)

  

我只是指输入字段位于按钮上方

如果它与按钮在同一个父元素中,那么最小模式的方法是:

<button onclick="close_modal(this)">close</button>
<script type="text/javascript" language="javascript">
    function close_modal(btn) {
        var variable = $(btn).prevAll("input").first().val();

        var userID = <?php echo 1; ?>;
        $('#modal-findAsset').modal('hide');   
    }
</script>

注意我将this传递给close_modal作为btn,以便我们有上下文,然后使用$(btn).prevAll("input").first().val()执行此操作:

  • 获取按钮
  • 的jQuery包装器
  • 使用prevAll查找所有以前的兄弟 input元素(例如,在同一个父级中)
  • 使用first取最接近按钮的那个
  • 使用val获取值

但是,可能有更好的方法来构建HTML,因此也就是代码,以使其不那么脆弱。

例如:Live Copysource

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
  <meta charset="utf-8">
  <title>Example</title>
</head>
<body>
  <div id="container">
    <div class="row">
      <label>A:
        <input type="text" value="a">
      </label>
      <button>Click Me</button>
    </div>
    <div class="row">
      <label>B:
        <input type="text" value="b">
      </label>
      <button>Click Me</button>
    </div class="row">
    <div>
      <label>C:
        <input type="text" value="c">
      </label>
      <button>Click Me</button>
    </div>
  </div>
<script>
  (function() {
    "use strict";

    $("#container").on("click", "button", function() {
      // Get the input value related to this row
      alert($(this).closest(".row").find("input").val());
    });
  })();
</script>
</body>
</html>

显然,适合你所做的事情的标记可能不仅仅是嵌套的div元素(或者可能是),但是......

答案 1 :(得分:0)

使用此:

<button onclick="close_modal()">close</button>
<script type="text/javascript" language="javascript">
    function close_modal() {
        var userID = <?php echo 1; ?>;
        $('#modal-findAsset').modal('hide');
        $('#random').val(userID);//set input value here.   
    }
</script>

答案 2 :(得分:0)

如果HTML是这样的:

<input type="text">
<button onclick="close_modal(this)">close</button>

然后JS应该是:

function close_modal(button) {
    var userID = <?php echo 1; ?>;
    $('#modal-findAsset').modal('hide');
    $(button).prev().val(userId);  
}