2015-06-15 138 views
-1

我做了一个JavaScript函数来添加页面中的其他字段,但是当我点击应该触发事件的按钮时,什么也没有发生。此外,我没有看到消防漏洞的任何错误JavaScript的onClick()事件不起作用

<!--add other charge fields button--> 
<div class="form-group" id="newf"> 
    <button type="button" class="btn btn-default" name="new" onclick="addField()"> 
     <?php echo $lang['add-field-button']; ?> 
    </button> 
</div> 

JavaScript函数是在同一页:

<!-- script to add more fields --> 
<script type="text/javascript"> 
function addField() { 
var field = 
'<fieldset>'+ 
'<legend><?php echo $lang['addmonth-add-charge'] ?></legend>'+ 
'<div class="form-group">'+ 
'<label for="charge"><?php echo $lang['charge-formlabel']; ?></label>'+ 
'<input type="text" id="charge" placeholder="<?php echo $lang['placeholder-addcharge']; ?>" class="form-control" name="charge[]">'+ 
'<p class="help-block"><?php echo $lang['charge-form-description']; ?></p>'+ 
'</div>'+ 
'<!--/end charge-->'+ 
'<div class="form-group">'+ 
'<label for="description"><?php echo $lang['description-formlabel']; ?></label>'+ 
'<textarea class="form-control" rows="5" id="description" name="description[]" placeholder="<?php echo $lang['placeholder-adddescription']; ?>" ></textarea>'+ 
'<label class="control-label" for="description"><?php echo $lang['description-formlabel']; ?></label>'+ 
'<div class="controls">'+ 
'<textarea class="span8" rows="5" id="description" name="description[]" placeholder="<?php echo $lang['placeholder-adddescription']; ?>" ></textarea>'+ 
'</div>'+ 
'<!--/end description-->'+ 
'<div class="form-group input-group">'+ 
'<label for="value"><?php echo $lang['value-formlabel']; ?></label>'+ 
'<span class="input-group-addon">$</span>'+ 
'<input type="text" id="value" placeholder="<?php echo $lang['placeholder-addvalue']; ?>" class="form-control" name="value[]"/>'+ 
'</div>'+ 
'<!--/end value-->'+ 
'</fieldset>'; 
$("#newf").before(field); 
} 
</script> 
+0

做你包含查询库? – koljanep

+0

什么库?它纯粹的javascript –

+3

'$(“#newf”)。before()'不是纯javascript,它很可能是jQuery。另外,如果您的任何'$ lang []'值中都有单引号,则JavaScript将会中断。 –

回答

-1

你需要一个反斜杠每个撇号之前,以免将关闭字符串:

<!-- script to add more fields --> 
<script type="text/javascript"> 
function addField() { 
var field = 
'<fieldset>'+ 
'<legend><?php echo $lang[\'addmonth-add-charge\'] ?></legend>'+ 
'<div class="form-group">'+ 
'<label for="charge"><?php echo $lang[\'charge-formlabel\']; ?></label>'+ 
'<input type="text" id="charge" placeholder="<?php echo $lang[\'placeholder-addcharge\']; ?>" class="form-control" name="charge[]">'+ 
'<p class="help-block"><?php echo $lang[\'charge-form-description\']; ?></p>'+ 
'</div>'+ 
'<!--/end charge-->'+ 
'<div class="form-group">'+ 
'<label for="description"><?php echo $lang[\'description-formlabel\']; ?></label>'+ 
'<textarea class="form-control" rows="5" id="description" name="description[]" placeholder="<?php echo $lang[\'placeholder-adddescription\']; ?>" ></textarea>'+ 
'<label class="control-label" for="description"><?php echo $lang[\'description-formlabel\']; ?></label>'+ 
'<div class="controls">'+ 
'<textarea class="span8" rows="5" id="description" name="description[]" placeholder="<?php echo $lang[\'placeholder-adddescription\']; ?>" ></textarea>'+ 
'</div>'+ 
'<!--/end description-->'+ 
'<div class="form-group input-group">'+ 
'<label for="value"><?php echo $lang[\'value-formlabel\']; ?></label>'+ 
'<span class="input-group-addon">$</span>'+ 
'<input type="text" id="value" placeholder="<?php echo $lang[\'placeholder-addvalue\']; ?>" class="form-control" name="value[]"/>'+ 
'</div>'+ 
'<!--/end value-->'+ 
'</fieldset>'; 
$("#newf").before(field); 
} 
</script> 
+2

这是PHP代码,当JS运行时不会在那里。 – epascarello

+1

这些位在PHP中运行服务器端。如果它们包含的_values包含单引号,那么_这些values_需要被转义。 –

+1

将它的php写入Javascript中的var。 – oMiKeY

-1

Javascript会在您点击之前中断。 因为你混合了一些Jquery代码。 简而言之,你的问题在别处。

检查你的web浏览器的调试器(CMD + ALT上ffow &铬+ I)

1

谢谢你现在的工作,这个问题是jQuery的我把它的脚本 后谢谢大家