I am trying to make it so that a user can choose which question they want to answer, and, using a textarea, answer that question. I'm having trouble figuring out how I can differentiate which question the user wants to answer. I've tried copying the html code for the textarea form into a variable, and then printing it foreach keys %hash, but I just wind up with syntax errors all over the place. My perl code takes each question in a separate .txt file and stores them into a hash in the form of question/answer pairs. If a question doesn't have an answer, the value is undef., I believe. Does anyone have any suggestions? I'm not asking for a direct answer, but rather some guidance from more experienced or insightful programmers. Any advice is appreciated. Thanks! Here is the most important code:
perl:
my #qa_list = ($pagev->listFile($anslist), $pagev->listFile($unanslist));
my %questions = map { split(/\t/, $_, 2) } #qa_list;
my $answer = $cgi->param('answer');
my $questionslist = join("<br>", #qa_list);
my $aselect = $cgi->param('select');
html:
<form action="/home/megaoff/www/viewquestions.dhtml" method="post">
Add an Answer: <br>
<textarea rows="1" cols="50" name="answer">
Add an answer here
</textarea>
<input type="submit" value="submit"/>
</form>
</body>
</html>
It's a little scattered right now, mostly because I'm still experimenting with things. But I hope the gist is there: Suggestions for differentiating which question the user wants to answer.
Related
Try check if input filed start with blank space, after testing e few hours and searching and testing a lot of patterns, found on internet, it doesn't work.
What i want: check if html5 input field start with character (no blank space), but in the text are blank spaces allowed.
At the moment the best solution i found, but it doesn't work:
<input type="text" class="naamveld" placeholder="Fullname" pattern="^\S+$" required>
Someone can help me with this 'simple' thing?
You should use a regular expression like this:
^[^-\s][\w\s-]+$
like it is explained in this question
According to your question, you said you wanted to remove all the whitespaces in the input, try this:
<input type="text" class="naamveld" placeholder="Fullname" required onkeydown="this.value = this.value.trim()" onkeyup="this.value = this.value.trim()">
If you try adding spaces at the beginning and end of the input, it will remove them.
How it works
The input has two attributes, (onkeydown and onkeyup) these functions will perform when the input receives a keyup or keydown, and will remove all whitespaces from the value of the input using this.value = this.value.trim()
If you want to learn more on how the trim() function works, you can go here.
First of all, again sorry for my bad english :-s
I want thanks everyone for all this useful info. When looking to the answers and solutions, with our help this is the solution (see pattern):
<input type="text" pattern="^\S.*$" ...>
Checked if input field started with blank space(s).
This is for me the best and simplest solution :-)
I can't seem to get the pattern attribute to work for the HTML form validation. I have seen a lot of tutorials and it all says the same and it works for them. Though I am using the same technique as the tutorials, I can't get it to work. For an example, please see the below code.
<label for= "firstname" id="firstname">First Name*</label>
<input type="text" name="firstname" pattern="[A-Za-z]" title="Only Alphabets" required/>
I want only alphabets to be inserted into this text box. When I insert numerals, it does ask to match the requested format which is only alphabets. But even when I enter alphabets it shows the message though it is supposed to let me submit the form. I tried all I can but can't seem to find a solution for this due my lack of knowledge. I would really appreciate if you could let me know how to enter only numbers into a field, only alphabets into a field, numbers and alphabets into a field using the pattern attribute for validation. Moreover, I was wondering whether the pattern attribute would be able to help me with this as well. For the National ID text box, I want the user to insert data in a specific format. Like this "A000000". An A in the first followed by 6 digits and if this format is not followed, then to display the message asking to match the requested format. Thank you so much in advance. (Please keep note that I am not using jquery).
Edit
May I please know how to add ' (apostrophe) along with the alphabets? Moreover pattern="[A-Za-z]+" wont let me insert spaces between words. How do I fix that?
The pattern field uses regular expressions. Try:
pattern="[A-Za-z]+"
For the national ID you could use:
pattern="A[0-9]{6}"
I'm developing a browser and I want to automatically insert a string in googles search field, when loading the page. The problem is, that it has no type="text". I've seen an approach to search for an element with name="q" (that's the name of the field), but it seems to be not very elegant, since it's possible, that the name changes over time.
Does anyone has a better idea?
THX
I just checked, when I call both "google.com" and "google.at" the text field has type="text":
<input id="gbqfq" class="gbqfif" name="q" type="text" [...]>
But: Searching for an input field with type="text" is just as brittle as searching for an input field with name="q": Google might add more input fields, rename them, do even more JavaScript magic, ...
If you just want to search for stuff, you cann use the following GET request: https://www.google.com/search?q=QUERY_GOES_HERE - This is probably a lot more stable than inserting text into text fields. (HT to Ethan Brouwer who mentioned this in a comment on your question).
Still a beginner so treat me gently.
I'm building an html "app" that takes days you are off-home as input and calculates multiple outputs such as: Pack: 5 shirts, 5 underwears, 3 pairs of socks..
<form oninput="x.value=(d.value).toFixed(0)">
<p>I'm going to be off-home for <input type="number" id="d" value=""> days. </p>
<p>I'll pack:</p><output id="result" name="x" for="d">X</output> <p>shirts.</p>
<output id="result" name="x" for="d">X</output> <p>underwears.</p>
</form>
At the moment I manage to get one output working, but if I add the second output, it won't work. I have read the form/input/output documentary - it didn't open for me.
Question:
How can I print multiple outputs from one input?
and
how can I calculate different values for the output?
(For example input values is 5, and I want the number of socks to be (5/2).toFixed(0)
I would prefer a HTML-only solution, but if javascript is needed, help me to get going.
I hate to break it to you, but you're already using JavaScript :)
oninput="x.value=(d.value).toFixed(0)"
You also might want to reconsider using the "output" tag since it's not supported in IE:
Output tag
HTML is used to define the structure of the document, so you'll have to use JavaScript (or equivalent) to get the functionality you want.
Hello
I am trying save a value from an input tag in some HTML source code.
The tag looks like so:
<input name="user_status" value="3" />
I have the page source in a variable (pageSourceCode), and need to work out some regex to get the value (3 in this example).
I have this so far:
Dim sCapture As String = System.Text.RegularExpressions.Regex.Match(pageSourceCode, "\<input\sname\=\""user_status\""\svalue\=\""(.*)?\""\>").Groups(1).Value
Which works fine most of the time, however this code is used to process source code from multiple sites (that use the same platform), and sometimes there are other attributes included in the input tag, or they are in a different order, eg:
<input class="someclass" type="hidden" value="3" name="user_status" />
I just dont understand regex enough to cope with these situations.
Any help very much appreciated.
PS Although i am looking for a specific answer to this question if at all possible, a pointer to a good regex tutorial would be great as well
Thanks
You can search for <input[^>]*\bvalue="([^"]+)" if your input tags never contain angle brackets.
[^>]* matches any number of characters except > which keeps the regex from accidentally matching across tags.
\b ensures that we only match value and not something like x_value.
EDIT:
If you only want to look at input tags where name="user_status", then you can do this with an additional lookahead assertion:
<input(?=[^>]*name="user_status")[^>]*\bvalue="([^"]+)"
In VB.NET:
ResultString = Regex.Match(SubjectString, "<input(?=[^>]*user_status=""name"")[^>]*\bvalue=""([^""]+)").Groups(1).Value
A good tutorial can be found at http://www.regular-expressions.info
Assuming this is an ASP.Net page and not some external HTML you can't control the better solution would be simply to access the control.
Add an ID field to your input control and a runat="server" like this.
<input id="user_status" runat="server" class="someclass" type="hidden" value="3" name="user_status" />
You can probably get rid of the Name field. It's typically the same as the ID field and ID is a better choice. You can actually have both an ID and Name field if you want and they can both be the same value.
In your code behind you can then access the value by the ID with no need for a regex.
Me.user_status.value