我的用户个人资料系统上有一个设置页面。
HTML (settings.php)
<div id="set-list">
<div class="set-cont" action="account">
Account Settings
</div>
<div class="set-cont" action="privacy">
Privacy Settings
</div>
</div>
<div id="set-show">
//account settings html form
</div>
JQUERY
$('.set-cont').click(function(){
var action = $(this).attr('action');
$.get('getSettingsHTML.php',{
action : action
},function(data){
$('#set-show').html(data.output);
},'json');
});
PHP (getSettingsHTML.php)
<?php
$output="";
switch($_GET['action']){
case 'account':
$output .='<input type="text" id="firstname">"';
//blah blah many stuffs
break;
case 'privacy':
$output .='<input type="text" id="email" >';
break;
}
echo json_encode(array("output"=>$output));
?>
当页面加载Accont设置的html表单是从默认加载的。
当任何人点击它所采用的.set-cont
action
属性时,就会从php加载相应的表单。
现在,如果我想加载隐私设置,我必须点击.set-cont
中的一个。
如果我有<a href="settings.php">Privacy Settings</a>
之类的链接。系统设置将被加载,您必须点击隐私设置菜单才能加载表单。
我有没有办法$('.set-cont[action="privacy"]').trigger('click')
从a
元素或任何其他方式做到?{/ p>
答案 0 :(得分:1)
您似乎试图从另一个页面链接到settings.php,当页面加载时,您希望能够指定加载哪个表单,隐私或帐户设置。
如果是这样,您可以执行以下操作:
<a href="settings.php#privacy">Privacy Settings</a>
然后在Settings.php上有以下 jQuery :
$(function() {
if (window.location.hash) {
var action = window.location.hash.substring(1);
loadForm(action);
}
});
$('.set-cont').click(function() {
var action = $(this).attr('action');
loadForm(action);
});
function loadForm(action) {
$.get('getSettingsHTML.php',{
action : action
},function(data){
$('#set-show').html(data.output);
},'json');
}
答案 1 :(得分:0)
不支持以编程方式单击链接。您可以做的是点击链接,创建表单并提交:
<div class="set-cont" action="privacy">
<a href="settings.php">Privacy Settings</a>
</div>
$('.set-cont > a').on("click", function()
{
var action = $(this).parent("div").attr('action'),
href = $(this).attr('href');
var form = $("<form></form>");
form.attr(
{
id : "newform",
action : href + "?action=" + action,
method : "GET",
target : "_blank" // Eventually open in new window/tab
});
$("body").append(form);
$("#newform").submit();
$("#newform").remove();
});
答案 2 :(得分:0)
seetting.php->
<div id="set-list">
<div class="set-cont" action="account">
<form name="form" class="form" action="url1.php" method="post" id='account_form'>
<input type="hidden" name="name1" >
<input type="hidden" name="name2" >
</form>
</div>
<div class="set-cont" action="privacy">
<form name="form" class="form" action="url2.php" method="post" id='privacy_form'>
<input type="hidden" name="name1" >
<input type="hidden" name="name2" >
</form>
</div>
</div>
<div id="set-show">
//account settings html form
</div>
jquery->
$('.set-cont').on("click", function()
{
var action = $(this).attr('action');
if(action=="privacy")
{
var formid='privacy_form';
}
else if(action=="account")
{
var formid='account_form';
}
$("#"+formid).submit();
});