- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 data-*
在模态上发送值。数据由 MySQL 查询填充。
这是 while
循环下的编辑代码按钮:
<div class="btn-group">
<a class="btn btn-primary" href="#">Action</a>
<a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
<span class="fa fa-caret-down"></span></a>
<ul class="dropdown-menu">
<?php
$li = "<li><a class=\"open-EditRow\" data-invno=\"".$invno."\" data-date=\"".$date."\" data-shipment=\"".$shipment."\" data-bcrp=\"".$bcrp."\" data-adjbcrp=\"".$adjbcrp."\" data-begbal=\"".$begbal."\" data-adjrpbc=\"".$adjrpbc."\" data-transrpbc=\"".$transrpbc."\" data-promo=\"".$promo."\" data-damages=\"".$damages."\"";
foreach($i as $k)
{
$li.=" data-".strtolower($k)."=\"".$b[$k]."\"";
}
$li.=" title=\"Edit this row\"><i class=\"fa fa-pencil\"></i> Edit</a></li>";
echo $li;
?>
</ul>
</div>
echo htmlentities($li)
返回:
<li><a class="open-EditRow" data-invno="2" data-date="2015-04-02" data-shipment="23" data-bcrp="41" data-adjbcrp="0" data-begbal="1500" data-adjrpbc="3" data-transrpbc="46" data-promo="3" data-damages="6" data-cebu="100" data-danao="200" data-talisay="0" title="Edit this row"><i class="fa fa-pencil"></i> Edit</a></li>
这是正确的。
数组$i
中的数据来自MySQL查询,这些是它的数据:
以下是编辑模式代码:
<?php
foreach($i as $j)
{
?>
<div class="form-group">
<label class="col-sm-3 control-label"><?php echo $j; ?></label>
<div class="col-sm-5">
<input type="text" class="form-control" name="<?php echo $j; ?>" id="<?php echo $j;?>"/>
</div>
</div>
<?php
}
?>
这是它的 jquery 代码:
$('.open-EditRow').click(function(){
var invno = $(this).attr('data-invno');
var date = $(this).attr('data-date');
var shipment = $(this).attr('data-shipment');
var bcrp = $(this).attr('data-bcrp');
var adjbcrp = $(this).attr('data-adjbcrp');
var begbal = $(this).attr('data-begbal');
var adjrpbc = $(this).attr('data-adjrpbc');
var transrpbc = $(this).attr('data-transrpbc');
var promo = $(this).attr('data-promo');
var damages = $(this).attr('data-damages');
var centers = <?php echo json_encode($i); ?>;
$('#myModal #invno').val(invno);
$('#myModal #date').val(date);
$('#myModal #shipment').val(shipment);
$('#myModal #bcrp').val(bcrp);
$('#myModal #adjbcrp').val(adjbcrp);
$('#myModal #begbal').val(begbal);
$('#myModal #adjrpbc').val(adjrpbc);
$('#myModal #transrpbc').val(transrpbc);
$('#myModal #promo').val(promo);
$('#myModal #damages').val(damages);
centers.forEach(function(entry) {
var center1 = entry.toLowerCase();
var center2 = 'data-' + center1;
var center = $(this).attr('data-' + center1);
$('#myModal #' + center1).val(center);
alert(center);
});
$('#myModal').modal('show');
});
我正在循环所有内容,因为它是动态值,但警报 var center
返回未定义,var center1
和 var center2
返回正确的数据。我认为我的 jquery 代码有问题,因为它没有在编辑模式上返回正确的数据。
最佳答案
当调用不属于您所在对象原型(prototype)的函数时,this
关键字不再引用您所在的对象。每个函数都使用this
关键字来设置其范围。当您使用 new
关键字调用函数时,该函数应返回要绑定(bind)到该函数的 this 的对象。
function AObject(){ // if you use the new keyword convention is to Capitalist
.. do stuff ...
this.aValue = 1;
// if called with the new keyword this function will return this
}
var aObj = new AObject(); // Creates an object and binds this to that new object
aObj.aValue === 1; // is true
也可以这样做
function bObject(){
var obj = {}; // create an object
obj.bValue = 1;
return obj; // return object referance
}
var bObj = bObject();
bObj.bValue === 1; // is true
需要一点经验才能知道何时以及如何使用 this
关键字,但我发现当有疑问时,可以使用 Function 对象的方法 bind()
来设置所需对象的“this”关键字非常有用。
方法不对
function MyObj(){
this.anArray = [0,1,2,3,4,5];
this.mag = 2;
var sumMag = 0;
this.anArray.forEach(function(item){
sumMag += item * this.mag; // the code will create an error as
// this points to the global this
});
console.log(sumMag); // the code never get here
}
正确执行此操作(并使用最佳实践)
function MyObj(){ // Always capabilities a class type object
// always loft functions to the top of the function block
// Some environments will insist you do this if you use "strict mode"
//
var myItteratorFunc = ( function(item){ // note the bracket
sumMag += item * this.mag;
} ).bind(this); // binds the current this to the function
// or you can
/*
var myItteratorFunc = function(item){
sumMag += item * this.mag;
};
var boundItterator = myItterator.bind(this);
*/
this.anArray = [0,1,2,3,4,5];
this.mag = 2;
var sumMag = 0;
this.anArray.forEach(myItteratorFunc); // best practice and looks better
console.log(sumMag); // logs -> 30
}
Bind 对于 setIntervale 和 setTimeout 来说非常方便,对于许多 DOM 事件(例如 onload)也非常方便
设置间隔的方法错误
function MyClass(){
this.tick = 0;
setInterval(function(){
this.tick += 1; // fails
},
1000
);
}
加载方式错误
function MyClass(){
this.imageLoaded = false;
var img = new Image();
img.src = "URL";
img.onload = function(){
this.imageLoaded = true; // wrong "this" is pointing to the img object
// and now img.imageLoaded === true
};
}
setInterval的正确方法
function MyClass(){
var tickFunction = (function(){ // loft function to top
this.tick += 1;
}).bind(this); // bind it to this object
this.tick = 0;
setInterval(tickFunction,1000);
}
Onload 如果您需要引用当前的 this,则正确的方法,否则 this
将引用加载的图像。
function MyClass(){
var imgLoadFunc = (function(){ // loft function
this.imageLoaded = true;
}).bind(this); // bind it to this
this.imageLoaded = false;
var img = new Image();
img.src = "URL";
img.onload = imgLoadFunc;
}
绑定(bind)也可以用于静态对象
var aThing = {
numberLegs:2,
canWalk:true,
talk:(function(){ // create a method for aThing
var str = "I have "+this.numberLegs; // get the number of legs
if(this.canWalk){ // can it this walk
str += " and can walk.";
}else{
str += " but can't walk.";
}
console.log(str);
}).bind(aThing) // bind it to the static reference of aThing
};
aThing.talk(); // logs -> I have 2 legs and can walk.
请参阅 MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind有关绑定(bind)的更多信息。
关于javascript - 使用 Javascript 循环将 PHP 数据发送到 Modal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32068894/
我有 Angular 问题 modal service 我的 app.js 包括: angular.module('myApp', ['myApp.test', 'ui.bootstrap','sma
这是模态中模态的示例。 http://foundation.zurb.com/docs/components/reveal.html 关闭子模态后,有什么方法可以返回到相同状态的第一个模态吗?或者,更
我在另一个模态中有一个模态,我设法使内部模态关闭而不影响另一个模态。问题是,当第二个模态关闭时,它会为其自身和第一个模态触发 'hidden.bs.modal' 事件。 Open demo moda
我试图在单击跨度时打开 Bootstrap 模式对话框,我在互联网上搜索了问题的解决方案 Bootstrap 模式 $(...).modal 不是函数 但我发现的唯一解决方案是“将 jQuery 脚本
我收到错误:this.$modal.modal 不是一个函数 我通过 gulp 文件从 wwwroot 文件夹中的 Node_Module 获得了 ng2-bs3-modal。 我的文件夹结构是:
我使用“use-ajax”类在模态中呈现登录表单。我想在不关闭同一模式的情况下处理验证错误。成功登录后,它会正确重定向,但是当发生错误时,它会关闭模式并重定向到登录页面,即用户/登录并在该页面上显示错
我使用的是 5.2.9 版的 Angular 5,我使用的是 ngx-smart-modal,当我打开 Modal 时,它不显示内容并且非常接近顶部并缩小,附加的图像已附加。 const reason
我正在尝试显示模式弹出窗口以显示网格中所选记录的详细信息。在模式弹出窗口中设置每个控件的值后,我尝试打开它但失败。我已在网站母版页中包含了所有必需的引用,但不断收到“对象不支持属性或方法‘模态’”错误
我正在关注这个Tutorial . 这是我的代码(我已经排除了我的表格 HTML): @model IEnumerable @{ Layout = "~/Views/Shared/_Layou
使用 twitter bootstrap 框架进行 Web 应用程序。我正在使用一个模态,其中我调用另一个模态,其中一个模态位于另一个模态之上。目前,如果您单击关闭“x”按钮,它将关闭两个模式窗口。我
是否可以使用 Twitter Bootstrap 在另一个模态中打开一个模态? 我创建了一个模态,并在第一个模态体内放置了一个指向第二个模态的链接和第二个模态的定义。当我单击链接时,第二个模式在第一个
我正在尝试将 Angular 的 Bootstrap 模式传递给在 Angular Masonry Gallery 中单击的图像的 URL。我所拥有的与文档中的演示非常接近,仅做了一些更改。我知道这完
我需要解决这个问题,我的问题是您看到的第一个模态框必须在白色模态框的后面,我该如何更改它们的位置? 这是图片 黑色模态应该在后面,白色模态应该在前面我怎样才能做到这一点?请帮忙谢谢。 这是我专门制作的
我在 Bootstrap 中遇到这些模态问题。我已经为两者设置了不同的 id,但是当按下“更多”按钮时只有第一个出现。第二个按钮没有显示所需的模式。 Something The Team
被这个问题难住了,但也许,只是也许,有人以前遇到过这个问题,可以给我指出正确的方向。 我有一个 JDialog 用于显示长时间运行的任务的进度,我已将其明确创建为具有定义的所有者的模式: prog
我有一个使用 PrimeFaces 3.0.1 在模态对话框上显示的模态 ConfirmDialog。如果 ConfirmDialog 被打开,整个页面都会被锁定,包括 ConfirmDialog 本
因此,我使用这段代码在当前打开的模态窗口中打开另一个模态窗口: Click 发生的情况是,滚动条会重复 500 毫秒。我猜是因为当前模式仍在淡出。然而,它看起来非常不平滑和卡顿。 如果有任何解决此问题
我目前在 Angular 应用程序中使用自定义主题,我需要将一个额外的 css 类附加到“.modal-dialog”容器,它位于 ngb-modal 内部-窗口。 根据文档 (https://ng-
我关注了这个 StackBlitz example加你 ngx-smart-modal window 。 一切都很顺利,除了组件在页面上打开而不是在灯箱模式弹出窗口中打开。 此示例使用 Angular
我想用 bunit 测试模态是否打开。问题是,模态没有被渲染。如何用 bunit 打开一个 blazored modal? 在我的测试组件中创建模态: Hi
我是一名优秀的程序员,十分优秀!