我正在使用css隐藏<div>
,我想在点击按钮时显示它。
这是我的代码,
function jobs_form_search_api_saved_searches_save_form_alter(&$form, &$form_state, $form_id) {
$form['actions']['set'] = array(
'#type' => 'submit',
'#value' => t('set'),
'#submit' => array('jobs_search_alert_mail_submit'),
'#weight' => 3,
);
}
我可以添加设置按钮,任何人都可以帮助我当我点击按钮时如何显示隐藏的<div>
?
答案 0 :(得分:0)
好吧,因为您的问题没有其他HTML或JS,这里有一个基本示例,您可以如何实现这一目标。
<强> CSS 强>
var expect = require('chai').expect,
sinon = require('sinon'),
mockery = require('mockery');
describe('bidding-war-server', function () {
var biddingWarServer,
stubbedIo;
beforeEach(function () {
stubbedIo = {
on: function() { }
};
var mockSocketIo = function (port) {
return stubbedIo;
};
mockery.registerAllowable('./server');
mockery.registerMock('socket.io', mockSocketIo);
mockery.enable({useCleanCache: true});
biddingWarServer = require('./server');
});
afterEach(function() {
mockery.deregisterAll();
mockery.disable();
});
it('should call socket.emit loading', function () {
var stubbedSocket = {
emit: sinon.spy(),
};
stubbedIo.on = sinon.stub().callsArgWith(1, stubbedSocket);
biddingWarServer.startServer();
expect(stubbedSocket.emit.called).to.be.true;
});
it('should setup io.on connection', function () {
stubbedIo.on = sinon.spy();
biddingWarServer.startServer();
expect(stubbedIo.on.called).to.be.true;
});
});
<强> HTML 强>
#hiddenDiv{
margin:10px;
padding:10px;
width:200px;
height:200px;
background: red;
display: none;
}
<强> JS 强>
<div id="hiddenDiv"></div>
<button id="showDiv">Show it!</button>
<强> Fiddle 强>
答案 1 :(得分:0)
首先,您要定义一个_form_alter
挂钩,因此请确保您只更改所需的表单,方法是检查$form_id
的值,或者命名您的函数{{1} }。
提交表单通常会发送一个同步HTTP请求,该请求将产生重新加载。如果目标是覆盖它并改为具有AJAX行为,那么您应该查看Form API's #ajax
property。
如果您的目标只是挂钩按钮点击事件,要在用户点击按钮和重新加载页面之间显示一个框(并且不阻止正常提交过程),那么您只需要插入一个新的Javascript文件,并执行类似
的操作HOOK_form_FORM_ID_alter