我需要做以下事情:
点击后我需要设置一个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>
我该怎么做?
答案 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()
执行此操作:
prevAll
查找所有以前的兄弟 input
元素(例如,在同一个父级中)first
取最接近按钮的那个val
获取值但是,可能有更好的方法来构建HTML,因此也就是代码,以使其不那么脆弱。
<!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);
}