在尝试复制代码之前,我正在尝试检查div是否为空,因为我发现用户希望选择“与结算相同”复选框并复制空的运输表单。
目前,根据下面的代码我试图说明他们的运输名称是否为空停止,抛出一个警告框然后停止该功能。
我发现警报被抛出,但复制运输表单的功能仍然运行。
正在检查的运输名称
<div class="chkField">
<label for="shipping_firstname">[CustomerInfo_firstname]</label>
<input name="shipping_firstname" onchange="clearContent(this);" type="text" id="shipping_firstname" value="[shipping_firstname]" size="15" tabindex="16" class="txtBoxStyle" />
<!--START: req_shipping_firstname-->
<img src="assets/templates/common/images/error2.gif" width="12" height="12" alt="" />
<!--END: req_shipping_firstname-->
<div class="clear"></div>
</div>
结算复选框,用于将送货字段复制到结算字段
<div class="sameAsBilling1">
<input type="checkbox" name="sameAsBilling" id="sameAsBilling" onclick="checkEmpty();showHideShipping();"/>
<label for="sameAsBilling">Same as Delivery Address</label>
<div class="clear"></div>
</div>
检查为空,抛出警告框
function checkEmpty(){
var shippingName = document.getElementById('shipping_firstname').innerHTML;
if(shippingName === ""){
alert("Please fill in your Name");
return;
}
复制功能运行以复制整个送货字段。
function showHideShipping() {
if (document.billing.sameAsBilling.checked) {
add_overlay("billing_info", 0);
if (get_Element('billing_firstname').value != get_Element('shipping_firstname').value) {
get_Element('billing_firstname').value = get_Element('shipping_firstname').value;
get_Element('billing_lastname').value = get_Element('shipping_lastname').value;
get_Element('billing_company').value = get_Element('shipping_company').value;
get_Element('billing_phone').value = get_Element('shipping_phone').value;
get_Element('billing_address').value = get_Element('shipping_address').value;
get_Element('billing_address2').value = get_Element('shipping_address2').value;
get_Element('billing_city').value = get_Element('shipping_city').value;
get_Element('billing_zip').value = get_Element('shipping_zip').value;
get_Element('billing_country').value = get_Element('shipping_country').value;
populateState('billing_state', 'billing_country');
get_Element('billing_state').value = get_Element('shipping_state').value;
}
} else {
remove_overlay("billing_info");
get_Element('billing_firstname').value = '';
get_Element('billing_lastname').value = '';
get_Element('billing_company').value = '';
get_Element('billing_phone').value = '';
get_Element('billing_address').value = '';
get_Element('billing_address2').value = '';
get_Element('billing_city').value = '';
get_Element('billing_zip').value = '';
get_Element('billing_country').value = get_Element('shipping_country').value;
populateState('billing_state', 'billing_country');
get_Element('billing_state').value = get_Element('shipping_state').value;
}
}
答案 0 :(得分:1)
在showHideShipping
内拨打checkEmpty
,只有在发现showHideShipping
不为空时才会调用eval
。
此外,内联事件处理程序在HTML标记中基本上是shipping_firstname
- 它们是不好的做法,导致代码很少,难以管理的代码。请认真考虑使用JavaScript附加您的活动,例如:https://developer.mozilla.org/en/DOM/element.addEventListener
另外,由于input
是.value
,您应该通过innerHTML
获取输入的文字,而不是document.querySelector('#sameAsBilling').addEventListener('click', checkEmpty);
function checkEmpty(){
var shippingName = document.getElementById('shipping_firstname').value;
if(shippingName === ""){
alert("Please fill in your Name");
return;
}
showHideShipping();
}
。
删除内联处理程序,并执行以下操作:
plt.figure(1)
ax1 = plt.subplot(221)
df1_summ.plot.bar(x='A', y='counts', ax=ax1, figsize=(5, 4), title='Exponential Plot')
ax2 = plt.subplot(222)
df2_summ.plot.bar(x='B', y='counts', ax=ax2, figsize=(5, 4), title='Poisson Plot')