Codenameone 如何使用html和javascript中的单选按钮插入CN1中的数据库
当选中单选按钮并将其插入sqlite数据库和mysql时,我试图获取html页面中单选按钮的值。以下是我的完整代码:Codenameone 如何使用html和javascript中的单选按钮插入CN1中的数据库,codenameone,Codenameone,当选中单选按钮并将其插入sqlite数据库和mysql时,我试图获取html页面中单选按钮的值。以下是我的完整代码: Form hi = new Form("Hi World"); final WebBrowser b = new WebBrowser(){ @Override public void onLoad(String url) { // Placed on onLoad because we need to wait for page // to load
Form hi = new Form("Hi World");
final WebBrowser b = new WebBrowser(){
@Override
public void onLoad(String url) {
// Placed on onLoad because we need to wait for page
// to load to interact with it.
BrowserComponent c = (BrowserComponent)this.getInternal();
// Create a Javascript context for this BrowserComponent
JavascriptContext ctx = new JavascriptContext(c);
JSObject window = (JSObject)ctx.get("window");
window.set("addAsync", new JSFunction(){
public void apply(JSObject self, final Object[] args) {
String a = (String)args[0];
// Double b = (Double)args[1];
System.out.println("Value picked is "+a);
JSObject callback = (JSObject)args[1];
callback.call(new Object[]{new String(a)});
System.out.println("ok Good");
}
});
}
};
b.setPage( "<html lang=\"en\">\n" +
" <head>\n" +
" <meta charset=\"utf-8\">\n" +
" <script>\n" +
"function test() {"+
" var radios = document.getElementsByName('radiotest');"+
" var found = 1;"+
" for (var i = 0; i < radios.length; i++) { " +
" if (radios[i].checked) {"+
// " document.getElementById('input3').setAttribute('value', radios[i].value); " +
" alert(radios[i].value);"+
" found = 0;"+
" break;"+
" }"+
"}"+
" if(found == 1)"+
" {"+
" alert('Please Select Radio');"+
" } "+
"}"+
// + \n" +
" var radios = document.getElementsByName('radiotest')"+
" document.addEventListener('click', function(){\n" +
" var found = 1;"+
" for (var i = 0; i < radios.length; i++) { " +
" if (radios[i].checked) {"+
// " document.getElementById('input3').setAttribute('value', radios[i].value); " +
" alert(radios[i].value);"+
" found = 0;"+
" break;"+
" }"+
"}"+
" if(found == 1)"+
" {"+
" alert('Please Select Radio');"+
" } "+
" a = document.getElementById('val1').value ;\n" +
" b = document.getElementById('val2').value\n" +
" window.addAsync(a, b, function(result){\n" +
" document.getElementById('result').innerHTML = result;\n" +
" });\n" +
" }, true); "
+ "" +
" </script>\n" +
" </head>\n" +
" <body >\n" +
" <table border='0' cellspacing = '15'>"+
" <thead>"+
" </thead>"+
" <tbody>"+
" <tr>"+
" <td><font size = '3'> <b>A </font></b><input type='radio' name='radiotest' id='val1' onclick='test()' value='1' style='border: none;'> value1</input>"+
"</td>"+
" </tr>"+
" <tr>"+
" <td><font size = '3'> <b> B</font></b><input type='radio' name='radiotest' id='val2' onclick='test()' value='2' style='border: none;'> value2</input>"+
"</td>"+ " </tr>"+
" <tr>"+
" <td> <font size = '3'> <b>C </font></b><input type='radio' name='radiotest' id='val3' onclick='test()' value='3'style='border: none;'> value3</input>"+
" </tr>"+
"<tr>"+
" <td> <font size = '3'> <b>D </font></b> <input type='radio' name='radiotest'id='val4' onclick='test()' value='4'style='border: none;'> value4</input>"+
" </tr>"+
"</tbody>"+
"</table>"+
"<span id=\"result\"></span>"+
" </body>\n" +
"</html>", null);
hi.setLayout(new BorderLayout());
hi.setLayout(new BorderLayout());
hi.addComponent(BorderLayout.CENTER, b);
hi.show();
formhi=新表单(“hi-World”);
最终WebBrowser b=新WebBrowser(){
@凌驾
公共void onLoad(字符串url){
//因为我们需要等待页面,所以被置于onLoad
//加载以与之交互。
BrowserComponent c=(BrowserComponent)this.getInternal();
//为此BrowserComponent创建Javascript上下文
JavascriptContext ctx=新的JavascriptContext(c);
jsobjectwindow=(JSObject)ctx.get(“window”);
set(“addAsync”,新的JSFunction(){
public void apply(JSObject self,final Object[]args){
字符串a=(字符串)参数[0];
//双b=(双)参数[1];
System.out.println(“选择的值为”+a);
JSObject回调=(JSObject)参数[1];
callback.call(新对象[]{newstring(a)});
System.out.println(“良好”);
}
});
}
};
b、 设置页(“\n”+
“\n”+
“\n”+
“\n”+
“函数测试(){”+
“var radios=document.getElementsByName('radiotest')+
“找到的变量=1;”+
“对于(var i=0;i
上面的代码不适用于我。请帮助
我现在面临的问题是,当通过收集单选按钮的值进行检查时,将actionListener添加到单选按钮,并相应地将这些值插入数据库
我已经编辑了我的代码,通过下面的代码,我可以通过javascript函数获得选择的值。现在,我如何在单击单选按钮时将单选按钮的值插入数据库中。
Form hi = new Form("BrowserComponent", new BorderLayout());
BrowserComponent bc = new BrowserComponent();
bc.setPage( "<html lang=\"en\">\n" +
" <head>\n" +
" <meta charset=\"utf-8\">\n" +
" </head>\n" +
" <body >\n" +
" <table border='0' cellspacing = '15'>"+
" <thead>"+
" </thead>"+
" <tbody>"+
" <tr>"+
" <td><font size = '3'> <b>A </font></b><input type='radio' name='radiotest' id = 'val1' onclick='test()' value='1' style='border: none;'> value1</input>"+
"</td>"+
" </tr>"+
" <tr>"+
" <td><font size = '3'> <b> B</font></b><input type='radio' name='radiotest'id = 'val2' onclick='test()' value='2' style='border: none;'> val2</input>"+
"</td>"+
" </tr>"+
" <tr>"+
" <td> <font size = '3'> <b>C </font></b><input type='radio' name='radiotest' onclick='test()' value='3'style='border: none;'> val3</input>"+
" </tr>"+
"<tr>"+
" <td> <font size = '3'> <b>D </font></b> <input type='radio' name='radiotest' onclick='test()' value='4'style='border: none;'> val4</input>"+
" </tr>"+
"</tbody>"+
"</table>"+
" <script type='text/javascript'>" +
//This javascript is perfect now.
"function test() {"+
" var radios = document.getElementsByName('radiotest');"+
" var found = 1;"+
" for (var i = 0; i < radios.length; i++) { " +
" if (radios[i].checked) {"+
// " document.getElementById('input3').setAttribute('value', radios[i].value); " +
// " instruction = document.getElementById('input3').value" +
// "'"+option_code2+"'"+
" alert(radios[i].value);"+
" found = 0;"+
" break;"+
" }"+
"}"+
" if(found == 1)"+
" {"+
" alert('Please Select Radio');"+
" } "+
"}"+
"</script>"+
" </body>\n" +
"</html>", null);
TextField tf = new TextField();
hi.add(BorderLayout.CENTER, bc).
add(BorderLayout.SOUTH, tf);
//bc.addWebEventListener("onLoad", (e) -> bc.execute("fnc('<p>Hello World</p>')"));
hi.show();
Form hi=新表单(“BrowserComponent”,new BorderLayout());
BrowserComponent bc=新的BrowserComponent();
bc.setPage(“\n”+
“\n”+
“\n”+
“\n”+
“\n”+
" "+
" "+
" "+
" "+
" "+
“价值1”+
""+
" "+
" "+
“B val2”+
""+
" "+
" "+
“C val3”+
" "+
""+
“D val4”+
" "+
""+
""+
" " +
//这个javascript现在是完美的。
“函数测试(){”+
“var radios=document.getElementsByName('radiotest')+
“找到的变量=1;”+
“对于(var i=0;ibc.execute(“fnc(“helloworld”)”));
嗨,show();
确保您的库是最新的,如果JavaScript桥对setURL
正常工作,但对setPage
失败,这听起来像是我们在最近的更新中修复的问题。确保您的库是最新的,如果JavaScript桥对setURL
正常工作,但对setPage失败e> 这听起来像是我们在最近的一次更新中修复的东西。为什么要使用HTML?这真的很难调试,因为有很多地方可能会失败。我有一些问题将从数据库中提出,关于下标,上标,只有在HTML中才能完美处理。我面临的真正问题是将EventListener添加到选中时为单选按钮。如果选中时我可以将EventListener添加到单选按钮,我将调用单选按钮的值并将其插入数据库。谢谢您的回答,先生。我已编辑