我正在寻找一个通用的解决方案.
考虑具有相同名称的2个无线电类型输入.提交时,检查的那个确定与表单一起发送的值:
<input type="radio" name="myRadios" onchange="handleChange1();" value="1" />
<input type="radio" name="myRadios" onchange="handleChange2();" value="2" />
Run Code Online (Sandbox Code Playgroud)
取消选择单选按钮时,不会触发更改事件.因此,如果已选择值为"1"的无线电并且用户选择第二个,则handleChange1()不会运行.这给我带来了一个问题(对我来说无论如何),因为没有任何事情我可以捕捉到这种取消选择.
我想要的是复选框组值的onchange事件的解决方法,或者是一个oncheck事件,它不仅检测收音机何时被检查,还检测未选中的时间.
我相信你们中的一些人之前遇到过这个问题.有哪些解决方法(或理想情况下处理此问题的正确方法)?我只是想捕捉改变事件,访问先前检查的无线电以及新检查的无线电.
PS
onclick似乎是一个更好的(跨浏览器)事件来指示何时检查无线电但它仍然无法解决未检查的问题.
我认为为什么onchange for checkbox类型在这种情况下工作是有道理的,因为它会更改它在检查或取消选中时提交的值.我希望单选按钮的行为更像是SELECT元素的onchange但是你能做什么......
考虑一个带有2个提交按钮的简单表单
<form method="post">
<button type="submit" name="command" value="cancel">Cancel Order</button>
<button type="submit" name="command" value="proceed">Save Order</button>
</form>
Run Code Online (Sandbox Code Playgroud)
提交后,服务器将通过检查值来知道用于提交表单的提交按钮command.大!
在这种情况下,我使用onsubmit表单的事件处理程序来预处理并通过AJAX发送表单数据.像这样:<form method="post" onsubmit="return ajaxSubmit(this);">
我正在使用此ajaxSubmit函数作为检查任何提供的表单元素并通过Ajax发送数据的一般方法.这可以很好地确定文本字段的值,如果复选框被"选中",在一个组中选择了哪个无线电等等.它唯一出错的地方(因为我不知道如何检查这个)是哪个提交按钮用于提交表单.即没有任何东西myForm["command"]可以告诉我们实际使用了哪两个命令按钮.
相反,有没有办法访问服务器在发送之前使用JavaScript接收的相同"post"数据?
否则,这只是我需要解决的一个缺陷吗?什么是最好的方式?
编辑: 由于所有现代浏览器都会传递用于提交表单的按钮的名称/值(以及其他相关部分,例如从组中选择哪个选项,选中复选框名称/值等),任何人都可以解释为什么那里在将数据发送到服务器之前无法直接访问此数据?我们不应该有这样的理由吗?
我知道转换实际上只能从子类到超类(向上转换),但这个例子说明了我想做什么.
Class Super {}
Class Sub extends Super {}
Super super = new Super();
Sub sub = (Sub)super;
Run Code Online (Sandbox Code Playgroud)
我相信这被称为"向下"铸造,这是不允许的......
给定Super类型的对象,创建Sub类型对象的最佳方法是什么.
编辑:
这就是问题 - 将动物转换为猫的最佳方法是什么.
答案?从基类型动物开始,将属性复制到cat.添加毛发和尾巴等基本上是一个复制构造函数.这是正确的答案(或一个好的答案)?
另一个编辑:
我认为我的问题很清楚但也许它太笼统了.要求采用"最佳"方式做某事往往会产生很多不同的反应.我意识到在不同情况下最好的方式可能会有所不同.
我不是在寻找有关Java或OO基础知识的教程.只是捕获意见所以我可以解决这个问题,因为我已经使用最佳实践概述了它.
如何使用Logback捕获Java程序中的System.out消息?
例如,我想使用此代码:
System.out.println("test: console out to file instead");
Run Code Online (Sandbox Code Playgroud)
...并将其输出捕获到文件中.
可以使用logback.xml配置文件完成吗?
HTML和CSS有时会让我大吃一惊.
带边框的DIV显示元素及其内容的完整高度的背景颜色.为什么没有边界,DIV会假设(反向继承?)它的孩子的边缘?
作为一个例子,这里是一个JSFiddle,说明有和没有边框的行为.
有没有人想解释这是一个"功能",而不是某种错误?
更新:向父级添加1px填充是一个快速修复.
我尝试过使用这个row课程但是没有解决问题.我只是试图拿两个div并使用bootstrap而不是css将它们放在一起.(这是一个我不能添加任何CSS的角落情况)有没有办法做到这一点?
基本上我有这个:
<div class="OuterMostClass row">
<div class="outerClass">
<button class="btn">button1</button>
</div>
<div class="outerClass2">
<button class="btn">button2</button>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我希望这两个按钮彼此相邻,由于限制,除了bootstrap之外我不能添加任何CSS.这可能吗?
我有一堆PSD文件(还有更多),我希望将它们变成我可以使用的格式.
我曾经(有些)成功地使用Gimp读取PSD,但这些文件无法正常读取.
有没有办法将PSD转换为XCF?
我已经尝试了IrfanView,它可以显示PSD,但没有转换到Gimp的XCF.
我在Yahoo Answers上读了一篇(接受的)帖子,说PNG可以支持图层.这是真的?如果是这样,我该怎么做?
我在一些JSP页面中大量使用ArrayList.我想像这样访问一个ArrayList:
${myArrayList.size}
Run Code Online (Sandbox Code Playgroud)
但由于对象必须符合JavaBean规范,其中myArrayList.getMyPropertyName()是${myArrayList.myPropertyName}在JSP/JSTL,该myArrayList.size()功能是不可访问.
还有我应该使用的另一课吗?
更新:
有一点很难接受一个功能,例如在JSP中获取ArrayList的大小只是为了更清晰的一个衬里,但似乎设计师选择的其他原因.size()而不是.getSize()
我想如果您有支持${fn:length(myArrayList)}或${myArrayList.getSize()}语法,这确实不是问题.
我听说这是一般编写查询的错误方法,但我想知道人们对SQL的新用户说些什么.
这是非常糟糕的形式还是只是懒惰?
因此,不要对此征求太多意见,除了不必输入每个字段名称之外,在查询中使用它有什么好的理由.另外,这些原因是否超过了它的使用危害?
我正在学习有关 Hibernate 的教程并看到以下代码:
package com.websystique.spring.dao;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
public abstract class AbstractDao {
@Autowired
private SessionFactory sessionFactory;
protected Session getSession() {
return sessionFactory.getCurrentSession();
}
public void persist(Object entity) {
getSession().persist(entity);
}
public void delete(Object entity) {
getSession().delete(entity);
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道persist()(或save()或delete())是否可以在没有事务的情况下使用?就像这里的情况一样。