Java 将请求提交到服务器之前的文本字段验证
我正在为一个android应用程序编写一个注册表单,我试图在用户单击register按钮时使用setError功能验证文本字段。它正在运行检查,但仍将表单提交到我的服务器进行注册。在提交注册用户的请求之前,我希望所有字段都有效。我已经寻找了几个小时的解决方案,但就是不知道我做错了什么。请帮忙Java 将请求提交到服务器之前的文本字段验证,java,android,json,forms,validation,Java,Android,Json,Forms,Validation,我正在为一个android应用程序编写一个注册表单,我试图在用户单击register按钮时使用setError功能验证文本字段。它正在运行检查,但仍将表单提交到我的服务器进行注册。在提交注册用户的请求之前,我希望所有字段都有效。我已经寻找了几个小时的解决方案,但就是不知道我做错了什么。请帮忙 btnRegister.setOnClickListener(new View.OnClickListener() { public void onClick(View view)
btnRegister.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String first_name = inputFirstName.getText().toString();
String last_name = inputLastName.getText().toString();
String email = inputEmail.getText().toString();
String dob = displaytxt.getText().toString();
String password = inputPassword.getText().toString();
UserFunctions userFunction = new UserFunctions();
JSONObject json = userFunction.registerUser(first_name, last_name, email, dob, password);
// check for login response
try {
if(inputFirstName.getText().toString().length() <= 0)
{
inputFirstName.setError("First name required!");
}
if (inputLastName.getText().toString().length() < 0)
{
inputLastName.setError("Last name required!");
}
if (inputEmail.getText().toString().length() == 0)
{
inputEmail.setError( "Valid email address required!" );
}
if (inputPassword.getText().toString().length() < 8)
{
inputPassword.setError( "Password required! (Minimum of 8 characters." );
}
if (!inputPassword2.getText().toString().equals(inputPassword.getText().toString()))
{
inputPassword.setError( "Passwords do not match! (Minimum of 8 characters.");
inputPassword2.setError("Passwords do not match! (Minimum of 8 characters.");
}
if (!checkBoxTerms.isChecked());
{
AlertDialog alertDialog = new AlertDialog.Builder(RegisterActivity.this).create();
alertDialog.setTitle("oops!");
alertDialog.setMessage("You must agree to the terms & conditions.");
alertDialog.setButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//dismiss the dialog
}
});
alertDialog.show();
}
if (json.getString(KEY_SUCCESS) != null) {
registerErrorMsg.setText("");
String res = json.getString(KEY_SUCCESS);
if(Integer.parseInt(res) == 1){
// user successfully registred
// Store user details in SQLite Database
DatabaseHandler db = new DatabaseHandler(getApplicationContext());
JSONObject json_user = json.getJSONObject("user");
// Clear all previous data in database
userFunction.logoutUser(getApplicationContext());
db.addUser(json_user.getString(KEY_FIRST_NAME), json_user.getString(KEY_LAST_NAME), json_user.getString(KEY_EMAIL), json_user.getString(KEY_DOB), json.getString(KEY_UID), json_user.getString(KEY_CREATED_AT));
// Launch Dashboard Screen
Intent dashboard = new Intent(getApplicationContext(), MainActivity.class);
// Close all views before launching Dashboard
dashboard.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(dashboard);
// Close Registration Screen
finish();
}else{
// Error in registration
registerErrorMsg.setText("Error in registration! Please check the information entered.");
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
btnRegister.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图){
字符串first_name=inputFirstName.getText().toString();
字符串last_name=inputLastName.getText().toString();
字符串email=inputEmail.getText().toString();
字符串dob=displaytxt.getText().toString();
字符串密码=inputPassword.getText().toString();
UserFunctions userFunction=新的UserFunctions();
JSONObject json=userFunction.registerUser(名字、姓氏、电子邮件、dob、密码);
//检查登录响应
试一试{
如果(inputFirstName.getText().toString().length()要聚合所有错误,并且仅在从onClick返回后使用错误标志,如:
boolean isError = false;
if(inputFirstName.getText().toString().length() <= 0)
{
inputFirstName.setError("First name required!");
isError = true;
}
if (inputLastName.getText().toString().length() < 0)
{
inputLastName.setError("Last name required!");
isError = true;
}
if (inputEmail.getText().toString().length() == 0)
{
inputEmail.setError( "Valid email address required!" );
isError = true;
}
if (inputPassword.getText().toString().length() < 8)
{
inputPassword.setError( "Password required! (Minimum of 8 characters." );
isError = true;
}
if (!inputPassword2.getText().toString().equals(inputPassword.getText().toString()))
{
inputPassword.setError( "Passwords do not match! (Minimum of 8 characters.");
inputPassword2.setError("Passwords do not match! (Minimum of 8 characters.");
isError = true;
}
if(isError){
return;
}
boolean-isError=false;
如果(inputFirstName.getText().toString().length()试试这个,它非常适合我
buttonClicked.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (lastName.getText().toString().trim().equalsIgnoreCase("")) {
lastName.setError("Enter LastName");
}else{
//call your intent
}
}
});
lastName.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
lastName.setError(null);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
lastName.setError(null);
}
});
您可以尝试在此处导入此类
这可以帮助您验证表单字段,只需按照说明操作即可。(:只需调试您的代码,我认为您有一个值出错,并且它在if部分中出现。这就是为什么它会出现。感谢您的快速响应。您提供的方法会汇总表单上的所有错误,因此我感谢您的帮助。但是,如果填写了第一封、最后一封电子邮件,表单仍然可以提交。似乎传递了inf我想这可能是我的数据库处理程序的问题。