2013-03-11 58 views
0

如果浏览器JavaScript被禁用,可以使用传统的POST方法发送表单CHtml::ajaxLink用CHtml发送表单数据为传统Post方法:: ajaxLink

或为此所需必须使用submitButton与片段'return false;' JavaScript上submit事件?

我的期望是:一个Link发送表格数据为Ajax和传统的Post方法(传统的Post方法,当浏览器JavaScript被禁用)。有没有办法?

回答

2

你可以创造一种后备的:

<!-- at start Hide the ajax link --> 
<style type="text/css"> 
    #ajax-form {display: none;} 
</style> 

然后你把你的DIV包含AJAX形式:

<div id="ajax-form"> 
    <?php //Ajax code ?> 
</div> 

,如果未启用JavaScript的将要执行的代码:

<noscript> 
    <?php echo 
    CHtml::beginForm('', 'post') . 
    CHtml::hiddenField('field', $model->id) . 
    CHtml::submitButton('button') . 
    CHtml::endForm(); 
    ?> 
</noscript> 

并在最后,你包括的JavaScript,将显示ajax的div如果JavaScript已启用:

<script type="text/javascript"> 
    document.write('<style type="text/css">#ajax-form {display: inline;}</style>'); 
</script> 
+0

感谢您的回答。有没有其他的方式来做到这一点? – msoa 2013-03-11 15:31:17

+1

嗡嗡声我没有找到任何其他解决方案,这就是为什么我这样做。 – darkheir 2013-03-11 15:38:17

+0

事实上,Yii没有解决方案,就像在'CHtml :: ajaxLink'中设置'htmlOption'一样。那就对了? – msoa 2013-03-11 15:57:40